Python网络编程之socket模块基础实例(4)

import socket
sk = socket.socket(type=socket.SOCK_DGRAM)
ip_port = ('127.0.0.1' , 8090)
mes_to_server = '你好,Linux公社服务器!'.encode('utf-8')#发送的数据必须是byte类型
sk.sendto(mes_to_server , ip_port)
ret , addr = sk.recvfrom(1024)
print(ret.decode('utf-8'))
sk.close()

Python网络编程之socket模块基础实例

如果需要不停收发消息,代码更改如下:

服务器端代码

import socket

sk = socket.socket(type=socket.SOCK_DGRAM)

sk.bind(('127.0.0.1' , 8090))

print('等待Linux公社linuxidc.com客户端发来消息……')

while True:

msg , addr = sk.recvfrom(1024) # 此处会阻塞

print('Linux公社收到{}发来的信息,内容是:{}'.format(addr , msg.decode('utf-8')))

mes_to_server = input('>>>').encode('utf-8')#发送的数据必须是byte类型

sk.sendto(mes_to_server,addr)

sk.close()

客户端代码

import socket

sk = socket.socket(type=socket.SOCK_DGRAM)

ip_port = ('127.0.0.1' , 8090)

while True:

mes_to_server = input('>>>').encode('utf-8')#发送的数据必须是byte类型

sk.sendto(mes_to_server , ip_port)

ret , addr = sk.recvfrom(1024)

print(ret.decode('utf-8'))

sk.close()

Python网络编程之socket模块基础实例

  使用socket进行UDP协议下通信时,可以多个客户端与服务器通信,也就是说,上面客户端代码你可以另开一个进程与服务器通信,且不需要关闭当前客户端,这是TCP协议与UDP协议下socket通信的一个不同之处。

5、总结

本篇初步总结了Python网络编程中socket模块的使用,事实上只是大致总结了基本函数的用法。

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/8904f81d5361dda2d2ad3418a39a94b9.html