码迷,mamicode.com
首页 > 其他好文 > 详细

udp编程

时间:2018-08-30 20:11:12      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:while   decode   from   gbk   __init__   客户端   udp编程   code   bre   

0丶逻辑

1丶创建套接字
2丶绑定端口(非必须)
3丶发送和接收数据
4丶关闭套接字

1丶创建udp.py文件

import  socket
class UdpSocket(object):
    def __init__(self,ip,port):
        self.ip = ip
        self.port = port

    def create_socket(self):
        # 创建套接字
        self.udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

        # 绑定本地ip和端口,元祖类型
        self.udp_socket.bind((self.ip,self.port))

    def send_data(self):
        self.create_socket()
        while True:
            senddata = input("请输入要发送的信息:")
            if senddata == "exit":
                break
            # 发送的数据需要encode编码成二进制,同时指定接收方的ip和端口
            self.udp_socket.sendto(senddata.encode("utf-8"), ("192.168.1.50", 6666))

        #关闭套接字
        self.udp_socket.close()

    def recv_data(self):
        self.create_socket()
        while True:

            # recv_data = self.udp_socket.recv(1024)  #只接收用户发过来的数据
            recv_data,recv_user_info = self.udp_socket.recvfrom(1024)  #接收的数据包含用户ip和端口信息以及数据

            #打印接收的数据,注意编码,二进制转化成十进制decode
            print("客户端%s:%s" %(str(recv_user_info),recv_data.decode("gbk"))) 
            # print(recv_data)
        self.udp_socket.close()

2丶创建main.py文件

from udp import *

def main():
   udpsocket = UdpSocket("",7890)
   # udpsocket.send_data()
   udpsocket.recv_data()
if __name__ == ‘__main__‘:
    main()

udp编程

标签:while   decode   from   gbk   __init__   客户端   udp编程   code   bre   

原文地址:https://www.cnblogs.com/lovelinux199075/p/9561975.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!