因为我以前学习过通信技术方面,在京港地铁工作过一段时间。
在之前学习的时候,说到UDP,TCP的时候一懵。因为原理几乎一样。尤其讲到单工,双工,半双工的时候,感觉翻一翻,还能找到那会儿的笔记!这个只是以代码的方式呈现了。这个以前我也只是知道概念,没有仔细的去研究过。找到了之前的一篇小代码,写的是个自己跟自己对话的沙雕聊天代码。
import socket
def send_msg(udp_socket):
"""发送消息"""
# 获取要发送的内容
ip = input("请输入对方的ip:")
port = int(input("请输入对方的port:"))
send = input("请输入要发送的消息:")
udp_socket.sendto(send.encode("utf-8"), (ip, port))
def recv_msg(udp_socket):
"""接收数据"""
recv = udp_socket.recvfrom(1024)
print("%s:%s" % (str(recv[1]), recv[0].decode("utf-8")))
def main():
# 创建套接字
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 绑定信息
udp_socket.bind(("", 7788))
# 循环循环来进行处理事情
while True:
print("-----xxx聊天器-----")
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()