首页 > 代码库 > Python socket编程客户端与服务端通信
Python socket编程客户端与服务端通信
[本文出自天外归云的博客园]
目标:实现客户端与服务端的socket通信,消息传输。
客户端
客户端代码:
from socket import socket,AF_INET,SOCK_STREAM#服务端的ip地址server_ip = ‘127.0.0.1‘#服务端socket绑定的端口号server_port = 20000if __name__ == ‘__main__‘: while True: str_msg = input("请输入要发送信息:") if str_msg != "": bytes_msg = bytes(str_msg, encoding = "gbk") client = socket(AF_INET,SOCK_STREAM) client.connect((server_ip,server_port)) client.send(bytes_msg) print(str(client.recv(8192),encoding="gbk")) client.close()
客户端(Mac系统)运行截图:
服务端
服务端代码:
from socketserver import BaseRequestHandler, TCPServer#指定接收消息的客户端ip列表target_clients = ["10.235.0.109"]class EchoHandler(BaseRequestHandler): def handle(self): for target_client in target_clients: if target_client in self.client_address: print(‘Got connection from‘, self.client_address) msg = self.request.recv(8192) if not msg: break ret_msg = bytes("自动回复:消息已收到!", encoding = "gbk") self.request.send(ret_msg) print(str(msg, encoding = "gbk")) breakif __name__ == ‘__main__‘: from threading import Thread NWORKERS = 16 #绑定socket服务端所在ip和端口号 serv = TCPServer((‘‘, 20000), EchoHandler) for n in range(NWORKERS): t = Thread(target=serv.serve_forever) t.daemon = True t.start() serv.serve_forever()
服务端(Windows系统)运行截图,注意要设置cmd活动页代码为936(chcp 936)方可显示中文,设置cmd属性中的字体为点阵字体:
参考资料:Python3-cookbook 11.2 创建TCP服务器
Python socket编程客户端与服务端通信
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。