python 网络编程(udp数据报)

时间:2022-12-21 20:25:10

       什么是UDP:UDP是一个简单的面向数据报的运输层协议:进程的每个输出操作都正好产生一个UDP数据报,并组装成一份待发送的IP数据报。这与面向流字符的协议不同,如TCP,应用程序产生的全体数据与真正发送的单个IP数据报可能没有什么联系。接收端是服务器(server),发送端是客户机(client)。

python中网络编程需要先import  socket包:

import sys

import socket

       为发送目的端开一个变量,保存其IP地址及端口,同时开一个变量保存自己本机IP地址,书写形式如下:('IP地址',端口号)

 
address=('192.168.1.39',8085)  #set the self_addressaddressto=('192.168.1.45',8085) #set the sendto_address
 

      创建一个socket类的变量,然后将本机IP地址绑定到这个socket类中:

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

s.bind(address)

       只要生成了socket类的变量,就可以收到来自别的客户机发来的消息,如果需要往其他IP地址发送消息,本机只需要作为客户机向外发送就可以了,只需要一个s变量。

data, addr = s.recvfrom(1024) 从发送方接收数据,接收到的数据data为字符串类型,保存在data中,从对方发送过来的地址保存在addr中。1024表示一次最多接收1024个字节。

s.sendto(message,addressto) 向目的地为addressto的地址发送message。这样对方就能收到了,message的数据类型是字符串。   

s.close()最后进行关闭。