失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > python网络编程--创建简单的UPD套接字实现两个进程间互相通信

python网络编程--创建简单的UPD套接字实现两个进程间互相通信

时间:2020-05-01 23:15:24

相关推荐

python网络编程--创建简单的UPD套接字实现两个进程间互相通信

Socket

什么是socket

Socket通常又称“套接字”,应用程序通常会通过“套接字”实现向网络发出请求或者相应网络请求,从而实现不同计算机之间或同一计算机的不同进程之间的相互通信

socket()函数

在python中,通过socket()函数来创建套接字,语法格式如下:

socket.socket(family,type,proto)

family:套接字的家族,一般分为AF_UNIX 和 AF_INET,通常情况AF_INET使用的多一些

type:套接字类型,一般分为SOCK_STREAM 和 SOCK_DGRAM,如果是创建基于TCP协议的套接字则用SOCK_STREAM,如果创建的是基于UDP的套接字则用SOCK_DGARM

proto:默认为0

Socket内建函数

socket有很多内建函数,这里只讲解一下我们将要用到的几个函数

bind():绑定地址到套接字,参数是元组类型,(ip,port)

sendto():用于发送UPD数据,将数据发送给套接字,address的形式为(ipaddr,port)的元组形式,指定接收信息的地址,返回值是发送的字节数

recvform():用于接收UPD数据,返回值是一个包含数据和发送地址元组(data,address)

close():关闭套接字,在完成一次发送和接收数据后一定要关闭套接字

代码实例

创建两个文件一个用于发送数据的sender.py和一个用于接收数据的receiver.py。代码如下:

# sender.pyfrom socket import *udp= socket(AF_INET,SOCK_DGRAM)udp.bind(('',7788))#绑定IP和端口,IP为空则表示是本机,端口7788data = input("请输入要发送的内容:")upd.sendto(data.encode('utf-8'),('10.34.2.92',7789))#要发送的数据,和接收数据的地址,内容需要编码,防止出现乱码udp.close()#关闭套接字

#receiver.pyfrom socket import *udp = socket(AF_INET,SOCK_DGRAM)udp.bind(('',7789))print("等待接收消息")content ,addr = udp.recvfrom(1024)print("消息来自:【%s:%s】" % (addr[0],addr[1]))print(content.decode('utf-8'))#需要解码,防止出现乱码udp.close()#关闭套接字

运行代码

打开两个命令行窗口并切换到两个文件所在的目录,

其中一个输入:python sender.py 回车,这时会提示输入要发送的内容,可以随便输入一些数据

另外一个输入:python receiver.py 回车,这时就会接收到来自sender.py发送的数据了。

如果觉得《python网络编程--创建简单的UPD套接字实现两个进程间互相通信》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。