python网络编程之tcp服务器和客户端
来源:互联网 发布:化妆品网络供货平台 编辑:程序博客网 时间:2024/05/23 16:27
tcp协议是双向通信,需要先建立连接,然后才能互相通信。其中涉及到通信节点(socket),端口等一些网络知识。如果不太了解,可以查看网络方面的资料。
tcp服务器
可以形象的理解为:银行早上9点开门营业,工作人员到各自的窗口上就位,等待顾客办理业务。
- 开启套接字(银行开门)
- 绑定服务端口(工作人员到各自的窗口)
- 开始监听(工作人员就位)
- 等待客户端连接(等待顾客)
- 和客户端对话(办理业务)
1
#!/usr/bin/env python
2
#coding=utf8
3
4
from
socket
import
*
5
6
host
=
''
7
port
=
12345
8
bufsiz
=
1024
9
10
#开启套接字
11
tcpSerSock
=
socket(AF_INET, SOCK_STREAM)
12
#绑定服务端口
13
tcpSerSock.bind((host, port))
14
#开始监听
15
tcpSerSock.listen(
5
)
16
17
while
True
:
18
#等待客户端连接
19
print
'waiting for connection...'
20
tcpCliSock, addr
=
tcpSerSock.accept()
21
print
'...connected from:'
, addr
22
23
while
True
:
24
#接收客户端信息
25
data
=
tcpCliSock.recv(bufsiz)
26
if
not
data:
27
break
28
#给客户端发送信息
29
tcpCliSock.send(
'[%s] %s'
%
(
"You send:"
, data))
30
31
tcpCliSock.close()
32
33
tcpSerSock.close()
tcp客户端
可以形象的理解为:顾客打算办理业务,到指定的窗口,和工作人员沟通办理业务。
- 开启套接字(打算办理业务)
- 连接服务器(到达指定窗口)
- 开始对话(办理业务)
1
#!/usr/bin/env python
2
#coding=utf8
3
4
from
socket
import
*
5
6
host
=
'localhost'
7
port
=
12345
8
bufsiz
=
1024
9
10
#开启套接字
11
tcpCliSock
=
socket(AF_INET, SOCK_STREAM)
12
#连接到服务器
13
tcpCliSock.connect((host, port))
14
15
while
True
:
16
#等待输入
17
data
=
raw_input
(
'> '
)
18
if
not
data:
19
break
20
#发送信息
21
tcpCliSock.send(data)
22
#接受返回信息
23
response
=
tcpCliSock.recv(bufsiz)
24
if
not
response:
25
break
26
print
response
27
28
tcpCliSock.close()
运行结果截图:
0 0
- python网络编程之tcp服务器和客户端
- Python网络编程之socket编程(一)--使用TCP和UDP客户端和服务器通信
- C# 网络编程之Tcp实现客户端和服务器聊天
- C#网络编程之 TCP实现客户端和服务器聊天
- 网络编程之tcp服务器/客户端模型
- linux c之网络编程之TCP(服务器和和客户端基础通信)
- Linux网络编程 之 TCP 多线程的服务器和客户端同时收发数据
- Linux TCP UDP网络编程客户端和服务器
- 网络编程之TCP客户端
- 网络编程之TCP服务器
- Python 网络之TCP编程
- python网络编程之TCP
- 系统编程之网络编程(TCP客户端与服务器的搭建)
- Python网络编程 3.1 由简单的TCP服务器、客户端程序分析相关方法
- Python网络编程 3.2 可能出现死锁的tcp服务器、客户端
- C语言之网络编程(服务器和客户端)
- C语言之网络编程(服务器和客户端)
- MFC Socket网络编程之TCP客户端
- Android免费地图应用网址
- python用httplib模块发送get和post请求
- Linear hashing 线性哈希
- 全球15个顶级技术类博客
- 给营销的人员看:一篇经典的推销文案
- python网络编程之tcp服务器和客户端
- java调用c、c++的dll
- 使用Eclipse更改svn登陆用户名
- Cocos2d-x--Android编译报错Could not find xxx.apk
- 程序设计实现笔记——性能
- Android:Handler,内部类导致的可能内存泄露
- OpenGL ES在移动设备有限资源下的性能与效果的综合平衡
- python中使用fork创建新的进程
- 串口调试心得