python - socket编程笔记
socket编程:
Server端:
import socket #创建服务端的scoket对象socket socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM) host = '127.0.0.1' port = 1111 #绑定地址 socket.bind((host,port)) #设置监听 socket.listen(5) #等待客户端连接 #注:accept()函数会返回一个元组 #元素1为客户端的socket对象,元素2为客户端的地址(IP地址,端口号) clientscoket,addr = socket.accept() #while循环是为了让对话一直进行,知道客户端输入q while True: #接收客户端的请求 recvmsg = clientscoket.recv(1024) #把接收到的数据进行解码 strData = recvmsg.decode('utf-8') #判断客户端是否发送q,是就退出此次对话 if strData == 'q': break print('收到:',strData) msg = input('回复:') clientscoket.send(msg.encode('utf-8')) socket.close()
客户端:
import socket #创建一个客户端的socket对象;使用给定的地址族、套接字类型、协议编号(默认为0)来创建套接字 client = socket.socket(socket.AF_INET,socket.SOCK_STREAM) #设置服务端的ip地址 host = '127.0.0.1' #设置端口 port = 1111 #连接服务端 client.connect((host,port)) #while循环是为了保证能持续进行对话 while True: #输入发送的信息 sendmsg = input('请输入:') #如果客户端的输入是q,则停止对话并退出程序 if sendmsg =='q': break #发送数据,以二进制的形式发送数据,所以要进行编码 client.send(sendmsg.encode('utf-8')) msg = client.recv(1024) #接收服务端返回的数据,需要解码 print(msg.decode('utf-8')) #关闭客户端 client.close()