服务器代码
from socket import * server = socket(AF-INET,SOCK_STREAM) server.bind(("127.0.0.1",8080)) server.listen() while True: client,addr = server.accept() while True: try: data = client.recv(1024) if not data: continue print(data.decode("utf-8")) data +=b"7777" client.send(data) except ConnectionResetError: print("一个客户端异常断线") break
客户端代码
from socket import * client = socket(AF_INET,SOCK_STREAM) client.connect(("127.0.0.1",8080)) while True: data = input(">>>>:") if not data: continue client.send(data.encode("utf-8")) data = client.recv(1024) print(data.decode("utf-8"))
重用端口号代码
s_socket.setsockopt(SOL_SOCKET,SO_REUSEADDR,1)
在服务器 接受了客户端的请求,则产生两个socket对象
一个是服务器socket,一个是接收对象后产生的临时socket对象
在收发消息的时候使用 客户端的临时对象, 服务器socket对象则主要负责建立连接
window 中客户端 强行退出的时候 服务器抛出 ConnectionResetError 异常
window 中 客户端 正常下线 服务器重复收空
linux 客户端 强行下线, 正常下线 服务器都是重复收空