【卷二】网络三—UDP服务器与客户端

这是另一个类型的服务器/客户端,无连接的 UDP: (User Datagram Protocol) 用户数据报协议

参考: P58~P60

UDP 时间戳服务器

【时间戳 就是ctime()显示的内容】

 1 # coding: utf-8
 2
 3 from socket import *
 4 from time import ctime
 5
 6 # HOST: 主机, 变量为空表示可以使用任何可用的地址
 7 # PORT: 端口, 有效端口号范围是0~65535(1024以下的预留给了系统)
 8 # BUFSIZ: 缓冲区, 大小可选, 这里设置为1024B, 即 1KB
 9 HOST = ""
10 PORT = 21567
11 BUFSIZ = 1024
12
13 ADDR = (HOST, PORT)
14 udpSerSock = socket(AF_INET, SOCK_DGRAM)
15 udpSerSock.bind(ADDR)
16
17 # 由于UDP类型套接字的是不用连接的, 所以没有监听(ss.listen())
18 # 和让客户端转接到一个新的、独立的套接字的"转化"过程(ss.accept())
19
20 while True:
21     print "Waiting for message..."
22     data, addr = udpSerSock.recvfrom(BUFSIZ)
23     udpSerSock.sendto("[%s] %s" % (ctime(), data), addr)
24     print "...received from and returned to:", addr
25
26 udpSerSock.close()

Server

UDP 客户端

 1 # coding: utf-8
 2
 3 from socket import *
 4
 5 # HOST:主机名, PORT:端口, 要和服务器的一样, 不然无法建立联系
 6 # PORT:端口, 同样可取0~65535(1024以下的预留给了系统)
 7
 8 HOST = "localhost"
 9 PORT = 21567以下的
10 BUFSIZ = 1024
11 ADDR = (HOST, PORT)
12
13 udpCliSock = socket(AF_INET, SOCK_DGRAM)
14 # 由于UDP套接字:(User Datagram Protocol)是不需要建立连接的, 所以
15 # 也就没有(cs.connet())的过程
16
17 while True:
18     data = raw_input("> ")
19     if not data:
20         break
21     # 记得发送地址呀,不然服务器去哪找你呀,亲
22     udpCliSock.sendto(data, ADDR)
23     data, ADDR = udpCliSock.recvfrom(BUFSIZ)
24     print data
25
26 udpCliSock.close()

Client-side

时间: 2024-08-28 17:46:04

【卷二】网络三—UDP服务器与客户端的相关文章

Python 绝技 —— UDP 服务器与客户端

i春秋作家:wasrehpic 0x00 前言 在上一篇文章「Python 绝技 -- TCP 服务器与客户端」中,介绍了传输层的核心协议 TCP ,并运用 Python 脚本的 socket 模块演示了 TCP 服务器与客户端的通信过程. 本篇将按照同样的套路,先介绍传输层的另一个核心协议 UDP,再比较 TCP 与 UDP 的特点,最后借助 Python 脚本演示 UDP 服务器与客户端的通信过程. 0x01 UDP 协议 UDP(User Datagram Protocol,用户数据报协议

node.js中通过dgram数据报模块创建UDP服务器和客户端

node.js中 dgram 模块提供了udp数据包的socket实现,可以方便的创建udp服务器和客户端. 一.创建UDP服务器和客户端 服务端: const dgram = require('dgram'); //创建upd套接字 //参数一表示套接字类型,'udp4' 或 'udp6' //参数二表示事件监听函数,'message' 事件监听器 let server = dgram.createSocket('udp4'); //绑定端口和主机地址 server.bind(8888, '1

windows下UDP服务器和客户端的实现

UDP是面向非连接的协议,因此在实现UDP服务器时,服务器不用总是处于监听状态.可以直接收发数据. 服务器端 1.初始化 WASStartup ( ... ) 2.创建Socket s = socket ( .. ) 3.绑定 bind( .. ) 4.收发数据 recvfrom( .. ) sendto(..) 5.关闭连接,释放资源 closesocket(..) WSACleanup() 客户端 // 无需绑定 1.初始化 WASStartup ( ... ) 2.创建Socket s =

Python网络编程UDP服务器与客服端简单例子

[转载] https://blog.csdn.net/hu330459076/article/details/7868028 UDP服务器代码: #!/usr/bin/env python # -*- coding:UTF-8 -*- from socket import * from time import ctime HOST = '127.0.0.1' PORT = 21567 BUFSIZE = 1024 ADDR = (HOST,PORT) udpSerSock = socket(AF

uip UDP 服务器广播模式(客户端可以任意端口,并且主动向客户端发送数据)

目前移植uip,发现UDP 服务器模式下,必须指定本地端口以及客户端端口,否则只能讲客户端端口设置为0,才能接收任意端口的数据,但是无法发送数据,因为此时客户端端口设置为0了,我通过将原始数据包中的客户端端口保存下来,并且在发送的时候将客户端端口替换为指定的端口,发送完成之后又设置为0,这样就实现了向任意客户端端口发送数据. uip.c if(uip_udp_conn->lport != 0 && UDPBUF->destport == uip_udp_conn->lpo

PostgreSQL编码格式:客户端服务器、客户端、服务器端相关影响

刚刚写了几百字的东西因为断网,导致全没有了,重头再写,我就只想记录东西我自己看了: 1)客户端编码格式默认是从客户端的服务器编码获取,也就是LANG环境变量. 2)客户端编码和服务器编码如果一致,则插入的数据之间不经过转码,存入服务器. 3)客户端编码和服务器编码如果不一致,则插入的数据会传输到服务器端,并进行自动转码,存入数据库服务器. 4)如果服务器端传过来的数据,本地编码对应的字符集不支持中文,那么也就不能显示,即使编码转换是正确的. 那么就有如下这种情况: 当我一开始使用UTF8插入数据

【windows socket+UDP服务器客户端】

Windows Socket+UDP服务器客户端 Winsock是 Windows下套接字标准.                    1.UDP socket编程:          UDP(用户数据报协议)是一个无连接,不可靠的数据传输,其特点是简单,快捷.相比与TCP,UDP不需要建立连接(不需connect.accept函数),数据发送接收之后,不需要终止连接.基于UDP的程序,避免了TCP运行的开销,在效率与速度上具有更好的表现.          UDP是无连接的,可能会有数据的丢失

Linux 网络编程——并发服务器的三种实现模型

服务器设计技术有很多,按使用的协议来分有 TCP 服务器和 UDP 服务器,按处理方式来分有循环服务器和并发服务器. 循环服务器与并发服务器模型 在网络程序里面,一般来说都是许多客户对应一个服务器(多对一),为了处理客户的请求,对服务端的程序就提出了特殊的要求. 目前最常用的服务器模型有: ·循环服务器:服务器在同一时刻只能响应一个客户端的请求 ·并发服务器:服务器在同一时刻可以响应多个客户端的请求 UDP 循环服务器的实现方法 UDP 循环服务器每次从套接字上读取一个客户端的请求 -> 处理

C#网络编程系列文章(八)之UdpClient实现同步UDP服务器

原创性声明 本文作者:小竹zz 本文地址http://blog.csdn.net/zhujunxxxxx/article/details/44258719 转载请注明出处 文章系列目录 C#网络编程系列文章(一)之Socket实现异步TCP服务器 C#网络编程系列文章(二)之Socket实现同步TCP服务器 C#网络编程系列文章(三)之TcpListener实现异步TCP服务器 C#网络编程系列文章(四)之TcpListener实现同步TCP服务器 C#网络编程系列文章(五)之Socket实现异