简单的socket通信
服务器端
#-*- coding:utf-8 -*- __author__ = "MuT6 Sch01aR" #服务端 import socket server = socket.socket() server.bind(('localhost',9999)) #绑定要监听的端口 server.listen() #开始监听TCP传入连接。指定最多允许多少个客户连接到服务器。它的值至少为1。收到连接请求后,这些请求需要排队,如果队列满,就拒绝请求。大部分应用程序设为5就可以了 conn,addr = server.accept() #等待连接 #conn就是客户端连过来在服务器端生成的一个连接实例 #addr为连接地址 print (conn,addr) print ('OK') data = conn.recv(1024) print ('recv:',data) conn.send(data.upper()) server.close()
客户端
#-*- coding:utf-8 -*- __author__ = "MuT6 Sch01aR" #客户端 import socket client = socket.socket() #声明socket类型,同时生成socket连接对象 client.connect(('localhost',9999)) #因为只能传入一个参数,所以使用元组 client.send(b'Hello World') #在py3中需要指定bytes类型 data = client.recv(1024) print ('recv:',data) client.close()
开启服务端,等待连接
开启客户端
客户端发送Hello World给服务器端,服务器端收到后返回大写的给客户端
如果需要发送中文,需要进行转码
#-*- coding:utf-8 -*- __author__ = "MuT6 Sch01aR" #客户端 import socket client = socket.socket() client.connect(('localhost',9999)) client.send('你好'.encode('utf-8')) data = client.recv(1024) print ('recv:',data.decode()) client.close()
运行结果