Home  >  Article  >  Backend Development  >  Introduction to socket UDP communication in python (with code)

Introduction to socket UDP communication in python (with code)

不言
不言forward
2018-10-08 17:13:282973browse

This article brings you an introduction to UDP communication through sockets in Python (with code). It has certain reference value. Friends in need can refer to it. I hope it will be helpful to you.

UDP

TCP establishes a reliable connection, and both communicating parties can send data in the form of streams. Compared with TCP, UDP is a connectionless protocol. When using the UDP protocol, there is no need to establish a connection. You only need to know the IP address and port number of the other party to send data packets directly. But I don't know if it can be reached.

Let’s take a look at how to transmit data through the UDP protocol. Similar to TCP, the communication parties using UDP are also divided into
client and server
Socket structure diagram to implement UDP communication

Introduction to socket UDP communication in python (with code)

UDP server

is similar to TCP. The communication parties using UDP are also divided into clients and servers. The server first needs to bind the port. But there is no need to monitor the client's connection

#server
import socket
#创建Socket时, SOCK_DGRAM 指定了这个Socket的类型是UDP。
server = socket.socket(type=socket.SOCK_DGRAM)
server.bind(('192.168.1.165',7890))
#不需要调用 listen() 方法, 而是直接接收来自任何客户端的数据
print('服务端已开启7890端口,正在等待被连接...')
#recvfrom() 方法返回数据和客户端的地址与端口, 这样, 服务器收到数据后,
#直接调用 sendto() 就可以把数据用UDP发给客户端
data,address = server.recvfrom(1024)
print("client>>",data.decode('utf-8'))
print("客户端连接的socket地址:",  address)
server.sendto(b'drink more water!',address)
server.close()

UDP client

When the client uses UDP, first still create a UDP-based Socket, and then, there is no need to call connect(), directly through sendto( ) Send data to the server

import socket
#创建Socket时, SOCK_DGRAM 指定了这个Socket的类型是UDP。
client = socket.socket(type=socket.SOCK_DGRAM)
send_data  =b'hello sheenstar'
client.sendto(send_data,('192.168.1.165',7890))
re_Data,address = client.recvfrom(1024)
print('server>>',re_Data.decode('utf-8'))
client.close()

Test results

Use two command lines to start the server and client tests respectively
Open the server

Introduction to socket UDP communication in python (with code)

Complete a UDP communication

Introduction to socket UDP communication in python (with code)

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

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