在前面的篇章中我们了解了使用UDP进行套接字通信的流程,现在用一个简单的程序帮助我们更好的理解。
将使用下列简单的客户-服务器应用程序来演示对于UDP的套接字编程。
(1)客户从其键盘读取一行字符并将数据向服务器发送。
(2)服务器接收该数据并将这些字符转换为大写。
(3)服务器将修改的数据发送给客户。
(4)客户接收修改的数据并在其监视器上将该行显示出来。
详细代码如下:
客户端:新建UDPClient.py文件。内容为:

from socket import * #此模块是所有网络通信的基础,有了这行,才能够在程序中创建套接字
serverName = 'hostname'#字符串包含服务器的IP地址或者包含服务器的主机名
serverPort=12000#端口号
clientSocket=socket(AF_INET,SOCK_DGRAM)#创建套接字
message=raw_input('Input lowercase sentence:')#读取用户输入信息,保存在message中
clientSocket.sendto(message,(serverName ,serverPort))#为报文附上目的地址并发送分组
modifiedMessage,serverAddress=clientSocket.recvfrom(2048)#接收分组,接收的分组放到modifiedMessage中,源地址放到serverAddress中,2048是缓存长度
print modifiedMessage#显示接收到的分组
clientSocket.close()#关闭套接字

服务器端:客户端:新建UDPServer.py文件。内容为:

from socket import * #此模块是所有网络通信的基础,有了这行,才能够在程序中创建套接字
serverPort=12000#端口号
serverSocket=socket(AF_INET,SOCK_DGRAM)#创建套接字
serverSocket.bind(('',serverPort))#为套接字分配端口号,当任何人向端口12000发送分组时都指向该套接字
print "The server is ready to receive"
while True:message,clientAddress=serverSocket.recvfrom(2048)#有客户端传过来的分组到达该服务器的套接字以后,将分组的数据放到message中,源地址被放到clientAddress中modifiedMessage=message.upper()#把数据转换成大写放到modifiedMessage中serverSocket.sendto(modifiedMessage,clientAddress)#为报文附上目的地址并发送分组#发送完成后仍在循环中,等待客户发送的其它UDP分组到达

使用UDP的简单C/S程序相关推荐

  1. linux系统udp通信程序,Linux UDP socket编程(UDP通讯模型) | C/C++程序员之家

    Linux UDP socket编程(UDP通讯模型): UDPClient + UDPService. Linux下大多数网络程序都是基于TCP的,很少基于UDP,简单的通讯模型如下,开发时候备用! ...

  2. 常见通信协议HTTP、TCP、UDP的简单介绍

    TCP   HTTP   UDP: 都是通信协议,也就是通信时所遵守的规则,只有双方按照这个规则"说话",对方才能理解或为之服务. TCP   HTTP   UDP三者的关系: T ...

  3. Java+利用UDP实现简单双机通信

    计算机网络实验报告,给了很多课题,然后自己就对实现双机通信比较感兴趣,然后就希望做一个能够实现双机双机通信的小聊天程序,本来还想用MFC做一个的,然后就在那扣了将近一天的MFC结果就自己做了一个最简单 ...

  4. 对TCP和UDP的简单理解——通俗易懂,图文并茂

    前言 tcp协议和udp协议都在传输层工作,他们的目标都是在程序之间传输数据(可是文本,图片,视频)对于tcp和udp都是二进制数. TCP和UDP之间的区别是什么? TCP是基于连接的,而UDP是基 ...

  5. 一个简单的IPmsg程序源码分析(二)

    离上篇一个简单的IPmsg程序源码分析(一)已经基本半个月(上篇最初发布在点点上面,后边纠结了一下还是选择了博客园),利用空闲的时间终于把源码的构架和一些细节基本都搞清楚了,总的来说是很简单的一个客户 ...

  6. 子程序调用与宏定义的异同_如何用数控系统进行简单的宏程序调用?老师傅告诉你,用G65就行...

    什么是简单调用?很多人都不知道吧,如果想要深入操作宏, 就先要学会变量,学会变量之担,再去操作宏,就会变得非常的简单,今天给大家分享如何用G65进行简单的宏程序调用. 用户宏的简单宏调用是指在主程序中 ...

  7. 小程序生命周期_来,简单说说小程序的生命周期?

    简单说说小程序的生命周期? 在小程序中生命周期分为三大类 应用生命周期 页面生命周期 组件生命周期 应用生命周期 onLaunch(){ console.log('onLaunch监听小程序初始化') ...

  8. 编写运行最简单的java程序——使用记事本编写java程序

    编写运行最简单的java程序--使用记事本编写java程序 第一个java程序--使用记事本编辑 经过上篇文章的java环境搭建成功的小伙伴们可以在自己的计算机上编写属于自己的java程序了yo~ 还 ...

  9. 用java做一个简单记事本_用记事本写一个简单的java程序

    用记事本写一个简单的java程序 第一步: 安装好jdk,并设置好环境变量. 桌面-计算机(右键)-属性-高级系统设置-环境变量-path-在变量值后加上:和jdk安装路径加上(路径即为C:\Prog ...

最新文章

  1. 3D中的OBJ文件格式详解(转载)
  2. Virtual Earth API 在指定zoomLevel添加自定义图层
  3. (56)等待链表,调度链表
  4. 时间选择器 可以选择日期和时间
  5. 不锈钢厨房用品类织梦模板
  6. ES6/03/函数的定义方式和调用方式,函数内的this指向,改变函数中this指向的三个方法(call(),apply(),bind())
  7. Linux 启动文件、设置环境变量的位置
  8. 菜菜之路-C语言求阶乘和
  9. DIV+CSS系统学习:转载
  10. 计算机类博士阶段学术规划,计算机博士生职业生涯规划咨询
  11. python写七夕超硬核礼物!
  12. NAT 网络地址转换
  13. 十三道Python练习题
  14. 专题:什么是MD5?
  15. 教你如何用android系统通过Remote Desktop远程控制电脑
  16. 985高校吐槽大会……
  17. Zephyr与Linux线程切换
  18. 手写csdn免登录脚本
  19. Ts-Map 类的使用
  20. html注册页面美化,css登录界面美化

热门文章

  1. java normalize_java – XPath normalize-space()返回一系列规范化字符串
  2. 如何配置mysql8.0_安装和配置Mysql8.0
  3. 北京/上海/杭州 | 蚂蚁金服智能引擎技术事业部招聘知识图谱算法工程师
  4. 今晚直播 | 微软亚洲研究院徐毅恒:预训练时代下的文档智能
  5. 综述 | 知识图谱发展概述
  6. android camera 3a,买相机送手机 pixel 3a 上手体验
  7. 实验4 贪心法(作业调度问题)
  8. 「数据库系列杂谈」数据库访问性能优化
  9. Velocity——模板中转换字符串首字母小写解决方案
  10. 浙江理工大学2019年4月赛