基于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通信的更多相关文章
- JAVA基础知识之网络编程——-基于UDP协议的通信例子
UDP是一种不可靠的协议,它在通信两端各建立一个socket,这两个socket不会建立持久的通信连接,只会单方面向对方发送数据,不检查发送结果. java中基于UDP协议的通信使用DatagramS ...
- Python中的端口协议之基于UDP协议的通信传输
UDP协议: 1.python中基于udp协议的客户端与服务端通信简单过程实现 2.udp协议的一些特点(与tcp协议的比较) 3.利用socketserver模块实现udp传输协议的并 ...
- 【Java网络编程】基于 UDP 的聊天通信
使用 udp 协议,写一个基于命令行的聊天软件:客户端跟服务端分别在命令行启动之后,客户端和服务器端可以互相发送数据. 代码实现如下: 一.创建线程 sendThread 和 receiveThrea ...
- 为何基于tcp协议的通信比基于udp协议的通信更可靠?
tcp协议一定是先建好双向链接,发一个数据包要得到确认才算发送完成,没有收到就一直给你重发:udp协议没有链接存在,udp直接丢数据,不管你有没有收到. TCP的可靠保证,是它的三次握手双向机制,这一 ...
- [java]基于UDP的Socket通信Demo
java课编程作业:在老师给的demo的基础上实现客户端发送数据到服务器端,服务器端接受客户端后进行数据广播. 整体功能类似于聊天室,代码部分不是太难,但是在本机测试的时候出现这样的问题: 服务端通过 ...
- Android基于UDP的局域网聊天通信
代码地址如下:http://www.demodashi.com/demo/12057.html 记得把这几点描述好咯:代码实现过程 + 项目文件结构截图 + 演示效果 1. 开发环境 1.1 开发工具 ...
- Java实例练习——基于UDP协议的多客户端通信
昨天学习了UDP协议通信,然后就想着做一个基于UDP的多客户端通信(一对多),但是半天没做出来,今天早上在参考了很多代码以后,修改了自己的代码,然后运行成功,在这里分享以下代码,也说一下自己的认识误区 ...
- 基于Udp的五子棋对战游戏
引言 本文主要讲述在局域网内,使用c#基于Udp协议编写一个对战的五子棋游戏.主要从Udp的使用.游戏的绘制.对战的逻辑这三个部分来讲解. 开发环境:vs2013,.Net4.0,在文章的末尾提供源代 ...
- Learning-Python【30】:基于UDP协议通信的套接字
UDP协议没有粘包问题,但是缓冲区大小要足够装数据包大小,建议不要超过 512 服务端: # 服务端 import socket server = socket.socket(socket.AF_IN ...
随机推荐
- hugo官方相关文档地址
+++ date="2020-10-17" title="hugo官方相关文档地址" tags=["hugo"] categories=[& ...
- selenium 浏览器最大化
from time import sleep from selenium import webdriver from selenium.webdriver.chrome.options import ...
- js 判断客户端 和 asp.net/C#判断客户端类型
1.js 判断客户端 <script language="JavaScript"> <!-- onload = function browserRedirect( ...
- frp 内网穿透远程桌面(Windows 10)配置
一.服务端配置 服务端需要公网环境,一般用一台云服务器就行了,我选择的是 Linux 服务器,Windows 服务器也是可以的. 下载 frp: wget https://github.com/fat ...
- JUC之线程池-三大方法-七大参数-四种拒绝策略
线程池:重点 三大方法 七大参数 四种拒绝策略 使用池化技术的理由: 我们的程序伴随着创建销毁线程十分浪费资源, 所以使用线程池,先创建线程,随用随取,用完归还 简单来说就是节约了资源. 使用线程池的 ...
- 微服务nacos服务注册与发现
一,以上一篇为基础 微服务从nacos配置中心获得配置信息 给service1, service2添加依赖 <dependency> <groupId>com.alibaba. ...
- LSM 树详解
LSM树(Log Structured Merged Tree)的名字往往给人一个错误的印象, 实际上LSM树并没有严格的树状结构. LSM 树的思想是使用顺序写代替随机写来提高写性能,与此同时会略微 ...
- day05 selenium基本使用
本文通过举例介绍selenium的基本使用方法,用来爬取京东笔记本电脑的商品信息,包括名称,url,价格,评价信息. from selenium import webdriver # 导入键盘Keys ...
- 【2】TensorFlow光速入门-数据预处理(得到数据集)
本文地址:https://www.cnblogs.com/tujia/p/13862351.html 系列文章: [0]TensorFlow光速入门-序 [1]TensorFlow光速入门-tenso ...
- 解决LINK : fatal error LNK1104: 无法打开文件“xxxx.lib”
举个例子