UDP客户端与服务器同时收发信息python

电脑1

同时实现信息的收与发
说明:soc1.bind((‘’,2323))的含义为将2323作为接收信息的端口
soc1.sendto(info.encode(‘utf-8’),(“192.168.200.18”,8080))的含义为向IP为192.168.200.18、端口为8080发送信息

from socket import *
from threading import Thread

def recveData(soc1):
    while True:
        recevinfoa=soc1.recvfrom(1024)
        print(recevinfoa[0].decode('utf-8'))


def sendData(soc1):
    while True:
        info=input('<<')
        soc1.sendto(info.encode('utf-8'),("192.168.200.18",8080))

def main():
    soc1 = socket(AF_INET, SOCK_DGRAM)
    soc1.bind(('',2323))    #这句话不加会报上面第一个截图那个错,我也不知道为啥。而且端口号必须要使用之前没用过的,不然会报上面图二那个错
    t1=Thread(target=recveData,args=(soc1,))
    t2=Thread(target=sendData,args=(soc1,))

    t1.start()
    t2.start()

    t1.join()
    t2.join()

if __name__ == '__main__':
    main()

电脑2

同时实现信息的收与发
说明:soc1.bind((‘’,8080))的含义为将8080作为接收信息的端口
soc1.sendto(info.encode(‘utf-8’),(“192.168.200.18”,2323))的含义为向IP为192.168.200.18、端口为2323发送信息

from socket import *
from threading import Thread

def recveData(soc1):
    while True:
        recevinfoa=soc1.recvfrom(1024)
        print(recevinfoa[0].decode('utf-8'))


def sendData(soc1):
    while True:
        info=input('<<')
        soc1.sendto(info.encode('utf-8'),("192.168.200.11",2323))

def main():
    soc1 = socket(AF_INET, SOCK_DGRAM)
    soc1.bind(('',8080))    #这句话不加会报上面第一个截图那个错,我也不知道为啥。而且端口号必须要使用之前没用过的,不然会报上面图二那个错
    t1=Thread(target=recveData,args=(soc1,))
    t2=Thread(target=sendData,args=(soc1,))

    t1.start()
    t2.start()

    t1.join()
    t2.join()

if __name__ == '__main__':
    main()

你可能感兴趣的:(通信,python,udp,服务器)