简单的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()

运行结果

原文地址:https://www.cnblogs.com/sch01ar/p/7954746.html