Python基于UDP套接字的服务端和客户端消息的收发方法

Python基于UDP套接字的服务端和客户端消息的收发方法

基于UDP套接字的服务端

1.创建数据报套接字

sockfd = socket(AF_INET, SOCK_DGRAM)

2.绑定地址

sockfd.bind(addr)

3.消息的收发

data,addr = sockfd.recvfrom(buffersize)

功能:接收UDP消息

参数:每次最多接收多大的消息

返回值:data 接收到的数据

addr 消息发送端的地址

一次接收一个数据报,如果数据报大小大于buffersize则会丢失部分消息

sockfd.sendto(data,addr)

功能:发送UDP消息

参数:data  发送的消息 bytes格式

  addr  目标地址

返回值:发送的字节数

4.关闭套接字

sockfd.close()

源码

from socket import *


#创建数据报套接字

sockfd = socket(AF_INET,SOCK_DGRAM)


#绑定服务端地址

server_addr = ('0.0.0.0',8888)

sockfd.bind(server_addr)


#消息收发

while True:

data,addr = sockfd.recvfrom(1024)

print('从%s收到%s'%addr,data.decode())

sockfd.sendto('收到你的消息'.encode(),addr)


sockfd.close()

UDP套接字的服务端

UDP客户端

1.创建套接字

socket(AF_INET,SOCK_DGRAM)

2.消息收发

recvfrom/sendto

3.关闭套接字

sockfd.close()

源码

from socket import *

import sys


HOST = sys.argv[1]

PORT = int(sys.argv[2])

ADDR = (HOST,PORT)


#创建套接字

sockfd = socket(AF_INET,SOCK_DGRAM)


#消息收发

while True:

data = input('消息:')

sockfd.sendto(data.encode(),ADDR)

data,addr = sockfd.recvfrom(1024)

print('接收到:',data.decode())


sockfd.close()

UDP客户端

最后编辑于:2019/10/16作者: 牛逼PHP

发表评论