tcp_demo
代码讲解:
server
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 import socket 2 3 4 def main(): 5 # 创建tcp服务器套接字 6 tcp_server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 7 # 绑定 8 load_addr = ('', 8000) 9 tcp_server.bind(load_addr) 10 # 监听 11 print('等待客户端接入...') 12 tcp_server.listen(128) 13 # 等待客户端消息 14 client_socket, client_addr = tcp_server.accept() 15 print(str(client_addr) + '接入...') 16 # 接收客户端请求 17 print('等待客户端消息...') 18 client_msg = client_socket.recv(1024) 19 print(client_msg.decode('gbk')) 20 # 回复客户端消息 21 client_socket.send('OK'.encode('gbk')) 22 # 关闭套接字 23 tcp_server.close() 24 client_socket.close() 25 26 27 if __name__ == '__main__': 28 main()
client
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 import socket 2 3 4 def main(): 5 # 创建tcp套接字 6 tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 7 # 链接 8 dest_ip = input('请输入对方ip:') # 192.168.6.206 9 dest_port = int(input('请输入对方port: ')) 10 tcp_socket.connect((dest_ip, dest_port)) 11 while True: 12 # 发送数据 13 send_msg = input('请输入要发送的信息: ') 14 tcp_socket.send(send_msg.encode('gbk')) 15 # 接收数据 16 recv_msg = tcp_socket.recv(1024) 17 print('接收到的数据: ', recv_msg.decode('gbk')) 18 break 19 # 关闭套接字 20 tcp_socket.close() 21 22 23 if __name__ == '__main__': 24 main()
server相对于client的来说,多了绑定、监听和等待客户端消息,另外,接受和回复客户端请求用的都是来自客户端的socket。
server分为这几步:
1、创建服务器套接字tcp
2、绑定ip和端口
3、监听
4、等待客户端消息
5、接受客户端请求
6、回复客户端请求
7、关闭套套接字
client分为这几步:
1、创建tcp套接字
2、链接服务器
3、发送和接受数据
4、关闭套接字
创建tcp服务器套接字