python 实现udp通信

编程入门 行业动态 更新时间:2024-10-28 06:36:16

python 实现udp<a href=https://www.elefans.com/category/jswz/34/1769529.html style=通信"/>

python 实现udp通信

python新手,单线程程序,主要还是想分享一下成长的经历,仅供参考,写的不好的地方希望能提提建议。

"""
udp 程序
"""
import socket
import threading
import timeclass Exchange(object):"""定义一个类,将收发数据的函数全部封装到此类中,但是并没有用继承子类的方法来写程序"""def __init__(self, ip, port):"""初始化,将外部传过来的参数转化为类属性,有ip地址和端口:param ip::param port:"""self.ip = ipself.port = portself.socket_init = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)self.socket_init.bind(("", 7788))def send_msg(self):"""发送消息的函数,直接按回车就可更换ip,port,发送close即可结束程序:return:"""while True:send_content = input('请输入要发送的信息:')if send_content == '':try:self.ip = input('请输入新的ip:')self.port = int(input('请输入新的端口:'))except ValueError:print('端口值出现问题或ip出现问题')breakif send_content == 'close':  # 关闭程序的时候也有问题(已解决)print('发送程序已关闭!')self.close()breaktry:self.socket_init.sendto(send_content.encode('utf-8'), (self.ip, self.port))except ValueError:print('编码错误')breakdef recv_msg(self):"""接收程序,当发送程序结束后此进程也会结束:return:"""time.sleep(0.1) # 画龙点睛纸笔while True:# 接收有问题(已解决)try:recv_data = self.socket_init.recvfrom(1024)except OSError:print('接收程序已关闭!')breaktry:print('\n收到消息:',recv_data[0].decode('utf-8'))except ValueError:print('解码错误')breakdef close(self):"""关闭套接字:return:"""self.socket_init.close()if __name__ == '__main__':ips = input('请输入ip地址:')ports = int(input('请输入端口号:'))target_person_1 = Exchange(ips, ports)thread_1 = threading.Thread(target=target_person_1.send_msg)thread_2 = threading.Thread(target=target_person_1.recv_msg)thread_1.start()thread_2.start()

更多推荐

python 实现udp通信

本文发布于:2023-06-15 06:41:52,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/722181.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:通信   python   udp

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!