美文网首页
python——网络

python——网络

作者: Jalynn葸 | 来源:发表于2018-05-18 17:43 被阅读45次
    #终端查看网络配置
    ifconfig
    

    使用udp发送的数据,都要写地址和端口
    在同一个OS中,端口不允许相同,即如果某个端口已被使用了,那么在这个进程释放这个端口之前,其他进程不能使用这个端口

    udp绑定信息

    如果不绑定,每运行一次,socket会随机给进程重新分配一个端口

    from socket import *
    udpScocket = socket(AF_INET,SOCK_DGRAM)
    bindAddr = ('',7788) #默认是本机IP,且只能绑定自己电脑的IP
    udpScocket.bind(bindAddr)
    recvData = udpScocket.recvfrom(1024)#接收数据
    print(recvData)
    udpScocket.close()
    
    from socket import *
    udpScocket = socket(AF_INET,SOCK_DGRAM)
    destIp = input("请输入目的Ip:")
    destPort = int(input("请输入目的port:"))
    sendData = input("请输入要发送的数据:")
    udpScocket.sendto(sendData.encode("utf-8"),(destIp,destPort))
    
    image.png

    创建聊天室

    from socket import *
    def main():
       udpScocket = socket(AF_INET,SOCK_DGRAM)】
       bindAddr = ('',7788)
       udpScocket.bind(bindAddr)
       while True:
           recvInfo = udpScocket.recvfrom(1024)
           print("%s"%(str(recvInfo[1])),recvInfo[0].decode("gb2312"))
    
    if __name__ =="main":
       main()
    

    用多线程实现收发同时实现

    from threading import Thread
    import socket import *
    #1、受数据,然后打印
    def recvData():
        recvInfo = udpScocket.recvfrom(1024)
        print("%s"%(str(recvInfo[1])),recvInfo[0].decode("gb2312"))
    
    def sendData():
        sendInfo = input("<<")
        udpScocket.sendto(sendData.encode("gb2312"),(destIp,destPort))
    
    udpScocket = None
    destIp = ""
    destPort = 0
    
    def main():
        global udpScocket
        global destIp
        global destPort
        destIp = input("请输入目的Ip:")
        destPort = int(input("请输入目的port:"))
        sendData = input("请输入要发送的数据:")
        udpScocket = socket(AF_INET,SOCK_DGRAM)
        bindAddr = ('',7788) #默认是本机IP,且只能绑定自己电脑的IP
        udpScocket.bind(bindAddr)
        tr = Thread(target=recvData)
        ts = Thread(target=sendData)
        tr.start()
        ts.start()
        tr.join()
        ts.join(
    
    if __name__ = "__main__":
        main()
    

    相关文章

      网友评论

          本文标题:python——网络

          本文链接:https://www.haomeiwen.com/subject/qrlidftx.html