# _*_ coding: utf-8 _*_"""Socket编程"""import sysimport socketdef server_func(port):"""服务端"""# 1. 创建socket对象server = socket.socket()# 2. 绑定ip和端口server.bind(("127.0.0.1", port))# 3. 监听是否有客户端连接server.listen(10)print("服务端已经启动%s端口......" % port)# 4. 接收客户端连接sock_obj, address = server.accept()sock_obj.settimeout(3)print("客户端:%s,超时时间:%s" % (address, sock_obj.gettimeout()))while True:try:# 5. 接收客户端发送的消息recv_data = sock_obj.recv(1024).decode("utf-8")print("客户端端 -> 服务端: %s" % recv_data)if recv_data == "quit":break# 6. 给客户端回复消息send_data = "received[%s]" % recv_datasock_obj.send(send_data.encode("utf-8"))print("服务端 -> 客户端: %s" % send_data)except Exception as excep:print("error: ", excep)# 7. 关闭socket对象sock_obj.close()server.close()def client_func(port):"""客户端"""# 1. 创建客户端的socket对象client = socket.socket()# 2. 连接服务端, 需要指定端口和IPclient.connect(("127.0.0.1", port))while True:# 3. 给服务端发送数据send_data = input("客户端>").strip()client.send(send_data.encode("utf-8"))if send_data == "quit":break# 4. 获取服务端返回的消息recv_data = client.recv(1024).decode("utf-8")print("服务端 -> 客户端: %s" % recv_data)# 5. 关闭socket连接client.close()if __name__ == '__main__':flag = sys.argv[1]if flag == "server":server_func(9901)else:client_func(9901)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。