Einfache Analyse der UDP-Socket-Kommunikation in Python (mit Code)

不言
Freigeben: 2018-10-10 15:49:13
nach vorne
3573 Leute haben es durchsucht

Dieser Artikel bietet Ihnen eine einfache Analyse der UDP-Socket-Kommunikation in Python (mit Code). Ich hoffe, er wird Ihnen helfen .

UDPserver.py

import socket
#导入套接字模块

s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
# - socket.AF_INET:IPV4
# - socket.STREAM:TCP
# - socket.DGRAM:UDP

s.bind(('',25555))
#绑定套接字有效地址和端口
#''空位任何地址 本地的127.0.0.1 和局域网还有自己真实的ip
print('[+] Server Open.....')

while True:
    try:
        data,c_addr = s.recvfrom(1024)
        #一次性接受1024bytes的数据 ,返回一个元组,其中有数据和地址
        #UDP不需要构成连接,直接发送即可
        print('from:',c_addr)
        #c_addr是一个地址,发送消息的客户端的IP和端口的二元组
        print('say:%s'%(data.decode('utf-8')))
        msg = data.decode('utf-8')
        s.sendto(msg.encode('utf-8'),c_addr)
        #发送信息,其中有两个参数,一个是信息,一个是目标地址和端口
    except KeyboardInterrupt:
        break

print('[+] Server Close......')
s.close
Nach dem Login kopieren

UDPclient.py

import socket
#导入套接字模块

c = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
# - socket.AF_INET:IPV4
# - socket.STREAM:TCP
# - socket.DGRAM:UDP

while True:
    try:
        msg = input('>>>')
        if msg == 0:
            #判断输入是否为空 就是直接回车了
            continue
        #UDP不需要构成连接,直接发送即可
        c.sendto(msg.encode('utf-8'),('127.0.0.1',25555))
        #发送消息,其中两个参数,第一个是要发送的信息
        #第二个是发送的ip地址和端口,是一个元组

        data,s_addr = c.recvfrom(1024)

        #c_addr是一个地址,发送消息的客户端的IP和端口的二元组
        print('$: %s'%(data.decode('utf-8')))
    except KeyboardInterrupt:
        break

c.close()
Nach dem Login kopieren

UDP-Socket-Modell

UDP muss nicht sein zusammengesetzt Direkt verbinden und senden

Servermodell:

data,c_addr = s.recvfrom(1024)

s.sendto(msg, c_addr)

Von anderen gesendete Nachrichten werden direkt an den s-Server-Socket gesendet .SOCK_DGRAM)

s.bind(('',25555))

send recv

sendto recvfrom

Sie sind alle blockiert

Das obige ist der detaillierte Inhalt vonEinfache Analyse der UDP-Socket-Kommunikation in Python (mit Code). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:cnblogs.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage