愚公移山日记·21
学习进程
这里是今天敲的一段代码是用upd聊天器,代码的内容并不难,只不过是注解太多显得很长。在这里我直接把B站课程链接发给大家,大家可以看一看主播如何讲解的这一段代码。
""""
#一,功能 发送信息 接受信息 退出程序
#二,框架的设计
#发送信息 send_msg()
#接受信息 recv_msg()
#程序的入口 main()
#当程序独立运行的时候才能启动聊天器
#三 实现步骤
#发送信息
#定义变量接受用户与输入的接受方的IP地址
#定义变量接受用户与输入的接受方的端口号
#定义变量接受用户与输入的接受方的内容
#使用socket的sendto()发送信息
#接受信息recv_msg()
#使用socket接受数据
#解析数据
#输出显示
#主入口main()
#创建套接字
#绑定端口
#打印菜单(循环)
#接受用户输入的选项
#判断用户的选择,并且调用对应的函数
#关闭套接字
"""
import socket
def send_msg(udp_socket):
#定义变量接受用户与输入的接受方的IP地址
ipaddr = input('请输入接收方的IP地址:\n')
#判断是否为空
if len(ipaddr) ==0:
ipaddr = ''
print('当前接受方为默认的值{}'.format(ipaddr))
#定义变量接受用户与输入的接受方的端口号
port = input('请输入接收方的端口号:\n')
#判断是否需要默认
if len(port) ==0:
port = ''
print('当前接受方为默认的值{}'.format(port))
#定义变量接受用户与输入的接受方的内容
content = input('请输入要发送的内容:\n')
#使用socket的sendto()发送信息
udp_socket.sendto(content.encode(),(ipaddr,int(port)))
def recv_msg(udp_socket):
#接受信息recv_msg()
#使用socket接受数据
recv_data,ip_port = udp_socket.recvfrom(1024)
#解析数据
recv_text = recv_data.decode()
#输出显示
print('接受到[%s]的消息:%s' %(str(ip_port),recv_text))
def main():
#创建套接字
udp_scoket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
#绑定端口
#address --->('地址',端口号)
#udp.bind(adress)
udp_scoket.bind(('',8888))
#打印菜单(循环)
while True:
print("\n\n***********************")
print("*****1,发送信息******")
print("*****2,接受信息*******")
print("*****3,退出系统******")
print("***********************")
#接受用户输入的选项
sel_num = int(input('请输入选项:\n'))
if sel_num ==1:
#print('发送信息')
#调用发送信息的函数
send_msg(udp_scoket)
elif sel_num ==2:
#print('接受信息')
recv_msg(udp_scoket)
elif sel_num ==3:
print('系统正在退出系统')
print('完成退出')
break
#判断用户的选择,并且调用对应的函数
#关闭套接字
pass
if __name__ =='__main__':
main()
#程序独立运行的时候,才去启动聊天器
迫于没有可以检验的系统,代码可能会出现些许问题,对此感兴趣的读者可以自行查看网站