基于udp的scoket通信
Posted whylinux
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于udp的scoket通信相关的知识,希望对你有一定的参考价值。
1.udp例子1
udpserver.py
# udp的server,不需要进行监听也不需要建立连接 # 在启动服务之后只能被动的等待客户端发送消息过来 # 客户端发送消息的同时还会自带地址信息 # server消息回复的时候,不仅需要发送消息,还需要带上对方的地址 import socket sk = socket.socket(type=socket.SOCK_DGRAM) # 创建udp的socket sk.bind((‘127.0.0.1‘, 8080)) # 绑定ip与端口 info = ‘‘ while True: msg, addr = sk.recvfrom(1024) # 阻塞接收数据,得到数据内容与目标的ip地址 print(msg.decode(‘utf-8‘)) info = input(‘发送到client的数据内容:‘) sk.sendto(info.encode(‘utf-8‘), addr) # 消息内容,并且指定目标IP端口发送 sk.close()
udpclient1.py
import socket sk = socket.socket(type=socket.SOCK_DGRAM) ip_port = (‘127.0.0.1‘, 8080) info = ‘‘ while True: info = input(‘发送到udp服务端的内容:‘) sk.sendto(info.encode(‘utf-8‘), ip_port) # 消息内容,并且指定目标ip和端口发送数据,ip和端口是为元组的参数 msg, addr = sk.recvfrom(1024) # 阻塞接收数据,得到目标发送的信息和目标的ip端口 print(msg.decode(‘utf-8‘)) sk.close()
ucpclient2.py
import socket sk = socket.socket(type=socket.SOCK_DGRAM) ip_port = (‘127.0.0.1‘, 8080) info = ‘‘ while True: info = input(‘发送到udp服务端的内容:‘) sk.sendto(info.encode(‘utf-8‘), ip_port) # 消息内容,并且指定目标ip和端口发送数据,ip和端口是为元组的参数 msg, addr = sk.recvfrom(1024) # 阻塞接收数据,得到目标发送的信息和目标的ip端口 print(msg.decode(‘utf-8‘)) sk.close()
2.简单udp时间服务器例子
udpserver.py
# udp server端提供服务 # 接收信息 时间格式 # 将server端的时间转换成接收到的时间格式的格式,发送给udp客户端 import socket import time sk = socket.socket(type=socket.SOCK_DGRAM) sk.bind((‘127.0.0.1‘, 8080)) msg = ‘‘ addr = () while True: msg, addr = sk.recvfrom(1024) if msg.decode(‘utf-8‘) == ‘bye‘: break sk.sendto(time.strftime(msg.decode(‘utf-8‘)).encode(‘utf-8‘), addr) sk.close()
udpclient.py
import socket sk = socket.socket(type=socket.SOCK_DGRAM) ip_port = (‘127.0.0.1‘, 8080) sk.sendto(b‘%Y-%m-%d %H:%M:%S‘, ip_port) msg, addr = sk.recvfrom(1024) print(msg.decode(‘utf-8‘))
以上是关于基于udp的scoket通信的主要内容,如果未能解决你的问题,请参考以下文章