服务端:
import socket # 实例化一个套接字对象 family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM net_com = socket.socket(socket.AF_INET,socket.SOCK_STREAM) # 重复使用ip端口 net_com.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1) # 绑定ip地址和端口号 net_com.bind(('10.102.38.182',8082)) # 最大挂起的链接数量 net_com.listen(5) # 等待客户端链接 连接后拿到客户端地址 print('服务端已启动...') conn,client_addr = net_com.accept() print('连接成功',client_addr) while True: # 通信循环 try: # 接收消息 data = conn.recv(1024) # 1024代表接收数据的最大字节数 print('客户端发送的数据:',data.decode('utf-8')) msg = input('>> ').strip() # 发给客户端 conn.send(msg.encode('utf-8')) except ConnectionResetError: break # 关闭连接 conn.close() # 关闭服务端 net_com.close()
客户端:
import socket # 实例化一个套接字对象 family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM net_com = socket.socket(socket.AF_INET,socket.SOCK_STREAM) # 连接服务端 net_com.connect(('10.102.38.182',8082)) while True: # 通信循环 msg = input('>>:').strip() # 如果是空数据 就不发送 if not msg:continue # 发消息 net_com.send(msg.encode('utf-8')) # 收消息 data = net_com.recv(1024) print('服务器返回的数据:',data.decode('utf-8')) # 关闭客户端 net_com.close()