Home  >  Article  >  Backend Development  >  Simple analysis of UDP socket communication in python (with code)

Simple analysis of UDP socket communication in python (with code)

不言
不言forward
2018-10-10 15:49:133522browse

This article brings you a simple analysis of UDP socket communication in python (with code). It has certain reference value. Friends in need can refer to it. I hope It will help you.

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

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()

UDP socket model

UDP does not need to be composed Connect and send directly

Server model:

data,c_addr = s.recvfrom(1024)

s.sendto(msg, c_addr)

Messages sent by others are sent directly to the s server socket

data: sent data

c_addr: who sent it

s = socket .socket(socket.AF_INET,socket.SOCK_DGRAM)

s.bind(('',25555))

send recv

sendto recvfrom

They are all blocked

The above is the detailed content of Simple analysis of UDP socket communication in python (with code). For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:cnblogs.com. If there is any infringement, please contact admin@php.cn delete