1.TCP是一种面向连接的可靠地协议,在一方发送数据之前,必须在双方之间建立一个连接,建立的过程需要经过三次握手,通信完成后要拆除连接,需要经过四次握手,这是由TCP的半关闭造成的,一方在完成数据发送后要发送一个FIN来终止这个方向的连接,一个TCP连接在收到一个FIN后仍能发送数据,但应用程序很少这么做,下面是TCP连接建立和拆除的过程:


2.python可以实现TCP服务器和客户端的编程,下面是代码:
服务器端:
</div>
客户端:
</div>
3.使用socketserver框架编写TCP服务器
Socketserver模块可以简化网络服务器的编写,它包含了四种服务器类,TCPServer使用TCP协议,UDPServer使用UDP协议,还有两个不常使用的,即UnixStreamServer和UnixDatagramServer,这两个类仅仅在unix环境下有用。
使用服务器编程,需要进行一下步骤,先建立一个请求句柄类,这个类继承自BaseRequestHandler类,建立这个类后重写它的handle方法,然后实例化服务器类,把主机名,端口号和句柄类传给它,然后调用server_forever()方法来处理请求。
使用socketserver框架的服务器:
</div>
上面的socketserver服务器只能处理一个请求,如果要处理多个请求,可以用forking或者threading实现,实现多进程或者多线程服务器。下面是使用forking和threading的服务器代码:
使用forking的服务器:
</div>
使用多线程的服务器:
class Handler(StreamRequestHandler):
def handle(self):
addr=self.request.getpeername()
print "got connection from",addr
self.wfile.write("connected")
server=Server(('',10000),Handler)
server.serve_forever()
</div>
您可能想查找下面的文章:
- Python与Java间Socket通信实例代码
- 利用Python中SocketServer 实现客户端与服务器间非阻塞通信
- Python使用SocketServer模块编写基本服务器程序的教程
- 实例讲解Python中SocketServer模块处理网络请求的用法
- 结合Python的SimpleHTTPServer源码来解析socket通信
- Python中基础的socket编程实战攻略
- python实现简单socket通信的方法
- Python内置的HTTP协议服务器SimpleHTTPServer使用指南
- Python的Socket编程过程中实现UDP端口复用的实例分享
- python使用socket远程连接错误处理方法

