使用udp_socket进行数据收发
发送流程:
1.创建套接字
2.绑定本地信息
3.发送数据
4.关闭
import socket
def main():
udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
udp_socket.bind(("",7890))
while True:
send_data=input("请输入要发送的数据:")
if send_data=="exit":
break
udp_socket.sendto(send_data.encode("utf-8"),("127.0.0.1",7788))
udp_socket.close()
if __name__=="__main__":
main()
接收流程:
1.创建套接字
2.绑定本地信息
3.接收数据
4.关闭
import socket
def main():
udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
localaddr=("",7788)
udp_socket.bind(localaddr)
while True:
recv_data = udp_socket.recvfrom(1024)
recv_msg = recv_data[0]
send_addr = recv_data[1]
print("%s:%s" %(str(send_addr),recv_msg.decode("utf-8")))
udp_socket.close()
if __name__=="__main__":
main()
简单的聊天器:
import socket
def send_msg(udp_socket):
"""发送消息"""
dest_ip = input("请输入对象的ip:")
dest_port = int(input("请输入对象的port:"))
send_data = input("请输入要发送的信息:")
udp_socket.sendto(send_data.encode("utf-8"), (dest_ip, dest_port))
def recv_msg(udp_socket):
"""接收数据"""
recv_data = udp_socket.recvfrom(1024)
print("%s:%s" % (str(recv_data[1]), recv_data[0].decode("utf-8")))
def main():
udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
udp_socket.bind(("",7788))
while True:
print("---聊天室---")
print("1:发送消息")
print("2:接收消息")
print("0:退出系统")
op = input("请输入功能:")
if op=="1":
send_msg(udp_socket)
elif op=="2":
recv_msg(udp_socket)
elif op=="0":
break
else:
print("输入信息有误,请重新输入...")
if __name__=="__main__":
main()