python 笔记---socket--UDP简单聊天器

import socket


class UDP_ltq(object):
    def __init__(self, bddk):
        self.hw = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)  # socket套接字
        self.hw.bind(("", bddk))  # 绑定端口

    def ym(self):
        """打印页面"""
        print("*" * 24)
        print("*" * 4 + "\t①发送信息\t" + "*" * 4)
        print("*" * 4 + "\t②接收信息\t" + "*" * 4)
        print("*" * 4 + "\t③退出信息\t" + "*" * 4)
        print("*" * 24)

    def fs(self):
        """发送数据"""
        jsf_ip = input("请输入接收方IP地址:")
        if len(jsf_ip)==0:
            jsf_ip=socket.gethostbyname(socket.gethostname()) #获取本机ip
            print("已自动填写本机IP地址")
        jsf_dk = input("请输入接收方端口号:")
        nr = input("请输入要发送的内容:")
        self.hw.sendto(nr.encode("GBK"), (jsf_ip, int(jsf_dk)))
        print("发送成功!")

    def js(self):
        """接收数据"""
        js_xx, js_ip = self.hw.recvfrom(2048)
        print("接收到IP地址为:", js_ip[0], "端口为:", js_ip[1], "发送的信息>>>>", js_xx.decode("GBK"))

    def gb(self):
        """关闭套接字"""
        self.hw.close()

    @staticmethod
    def main():
        dk = int(input("请绑定本机端口(1024-65535):"))
        if 1024 <= dk <= 65535:
            print("成功绑定端口>>>", dk)
            my = UDP_ltq(dk)
            while True:
                my.ym()
                xz = input("请选择功能:")
                if xz == "1":
                    my.fs()
                elif xz == "2":
                    my.js()
                elif xz == "3":
                    my.gb()
                    break
                else:
                    print("输入非法,请重新输入!")
            print("退出成功!")
        else:
            print("绑定端口失败,程序退出!")


if __name__ == '__main__':
    UDP_ltq.main()


运行结果——————

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值