计算机网络通信中传输的是,联合网络通信集团有限公司
墨初 知识笔记 36阅读
Socket 进程之间通信的工具,进程之间想要进行网络通信需要Socket两个进程之间通过socket进行相互通讯,就必须有服务端和客服端。
Socket服务端编程# 1.创建socket对象import socketsocket_server socket.socket()# 2. 绑定socket_server到指定IP和地址socket_server.bind((localhost, 8888))# 3.服务器开始监听端口 listen方法内接收一个int整数表示允许的链接数量超出的会等待可以不填不填会自动设置一个合理的值socket_server.listen(1)# 4.接收客户端链接,获得链接对象# accept方法是阻塞方法等待客户端的链接如果没有链接就卡在这一行不想下执行了。accept返回的是二元元组链接对象客户端的地址信息# 等待客户端链接# result:tuple socket_server.accept()# conn result[0] # 客户端和服务端的链接对象# address result[1] # 客户端的地址信息# 可以通过 变量1变量2 socket_server.accept() 的形式直接接收二元元组内的两个元素conn, address socket_server.accept() # 简写print(f接收到了客户端的的链接,客户端的信息是:{address})while True: # 持续通信 # 5.客户端连接后通过recv方法接收客户端发送的消息要使用客户端和服务端本次链接对象而不是scoket_server对象 # recv接收的参数是缓冲区的大小一般给1024即可 # recv方法返回值是一个字节数组也就是bytes对象不是字符串可以通过decode方法通过UTF-8编码将字节数组转换为字符串对象 data: str conn.recv(1024).decode(UTF-8) print(f客户端发来的消息是:{data}) # 6.通过conn,调用send方法可以回复消息 msg input(请输入你要和客户端回复的消息) if msg exit: break conn.send(msg.encode(UTF-8)) # encode方法可以将字符串编码转为字节数组对象# 7.关闭链接conn.close()socket_server.close()
Socket客户端编程 # Socket客户端编程# 1.创建socket对象import socketsocket_client socket.socket()# 2. 连接到服务端socket_client.connect((localhost,8888))while True: # 3.发送消息 msginput(请输入你要和服务端发送的消息) if msg exit: break socket_client.send(你好呀.encode(UTF-8)) # 4. 接收返回消息 rece_data socket_client.recv(1024) print(f服务端回复的消息是:{rece_data.decode(UTF-8)})# 5.关闭连接socket_client.close()

标签: