实现client端于server端进行socket UPD通信
Client端向Server端发起消息,Server端收到之后进行回复
Server端代码
import socket ''' 思路: 1、建立socket 2、绑定ip和port 3、接受访问 3、消息回馈 ''' def ServerApp(): # 1、建立socket # socket.AF_INET:使用ipv4协议 # socket.SOCK_DGRAM:使用UDP通信 sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # 2、绑定ip和port # 192.168.200.2 这是Server端的IP地址 # 1914 端口 # 地址是一个tuple类型,(ip,port) addr = ("192.168.200.2", 1914) sock.bind(addr) # 3、接受消息 # 等待方式为四等、一直等待接受消息 # recvfrom 接收铺得返回值因为有个元祖(tuple)、前一项表示数据,后一项表示地址 # data为对方发送的消息、addr为对方的ip地址 data, addr = sock.recvfrom(500) # 查看对方传过来的数据、以及数据类型 # print(data) # print(type(data)) # 发送过来的是bytes格式,必须通过解码才能得到str格式的内容,如何解码? text = data.decode() print(text) # print(type(text)) # 4、消息回馈 # 第四步可以不用做,但是为了练习,测试一下嘛 # 给对方返回的消息 rsp = "好的,我收到了 谢谢" # 发送的数据也需要编码成bytes格式 # 默认为utp8 rsp.encode(默认为utp8) data = rsp.encode() sock.sendto(data, addr) if __name__=='__main__': print("Starting Server......") ServerApp() print("Ending Server......")
Client端代码
import socket ''' - Client端流程 1、建立通信的Socket 2、发送内容到指定服务器 3、接受服务器给定的反馈内容 ''' def ClientApp(): sock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) text = input("请输入你的留言:") data = text.encode() # 发送 sock.sendto(data, ("192.168.200.2", 1914)) data, addr = sock.recvfrom(500) data = data.decode() print(data) if __name__ == '__main__': ClientApp()