1、最简单的服务端和客户端
服务端代码
import socket #网络编程需要用到socket模块 server = socket.socket() #创建一个用于监听连接的Socket对像(服务器端) server.setblocking(socket.SOL_SOCKET,socket.SO_REUSEADDR,1) #解决服务重启时报address already in use server.bind((‘127.0.0.1‘, 9001)) #设置服务端的ip和端口号 server.listen() #开始监听 conn, addr = server.accept() #接受服务器端发出的消息和地址信息 c_info = conn.recv(1024) #将接受的消息存入到c_info变量中 print(c_info) conn.send(b‘hello word‘) #向客户端发出消息 conn.close() #关闭连接 server.close() #关闭服务端
客户端代码
import socket #网络编程需要用到socket模块 client = socket.socket() #创建一个客户端 client.connect((‘127.0.0.1‘, 9001)) #连接服务端 client.send(b‘nice to meet you‘) #向服务端发消息 s_info = client.recv(1024) #接受服务端发来的消息 print(s_info) client.close() #关闭客户端
2、可交互的服务端和客服端
服务端代码
import socket server = socket.socket() server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) server.bind((‘127.0.0.1‘, 9001)) server.listen() conn, addr = server.accept() while True: info=input(‘>>>‘) #输入数据,编码并发送给客户端 info=info.encode(‘utf-8‘) conn.send(info) c_info = conn.recv(1024).decode(‘utf-8‘) #接受客户端消息并解码 print(c_info) if c_info == ‘bye‘: #当客户端发送bye时,服务端给客户端发送bye并结束循环 conn.send(b‘bye‘) break conn.close() server.close()
客户端代码
import socket client = socket.socket() client.connect((‘127.0.0.1‘, 9001)) while True: s_info = client.recv(1024) #接受服务端的消息并解码 s_info = s_info.decode(encoding=‘utf-8‘) print(s_info) if s_info == ‘bye‘: #如果服务端发送的消息为bye,回复bye,结束循环 client.send(b‘bye‘) print(‘bye_1‘) break info = input(‘>>>‘) #输入数据,编码并发送给服务端 info = info.encode(‘utf-8‘) client.send(info) client.close()
总结:无论是服务端和客户逻辑是怎样的,服务端和客户端收发要对应。
代码亲测过,只写了逻辑实现,改进空间很大,请多指点。
参与评论
手机查看
返回顶部