1、创建服务端的socket以便开始通讯。
2、绑定ip以及端口号,这样客户端才能找到这个程序。
3、因为本地网卡不止一个所以尽量不写死,一般用""空来表示所有本地网卡。
4、接下来开始通过绑定的ip以及端口开始监听消息,设置最大接收1024字节消息,以防文件过大,占满网络缓存区。
5、收到消息之后,这时候就收到了客户端发送过来的ip以及端口,然后也可以再通过这个ip以及端口回发消息。
6、收到消息的时候,先确定客户端的编码形式是utf-8还是gbk,并且用同样的方式把字节码解码成能看懂的数据。
7、在进行回发的时候,要首先对要发送的数据进行编码,转换成对应的字节码发送。
8、最后一步就是关闭服务端,一般不做关闭,关闭软件即关闭服务端。
9、在用线程,进程,进程池的时候可实现消息收发的并行,协程的时候可实现伪并行,原理就是方法之间切换。
10、协程可使用封装好的框架,greenlet以及gevent框架来操作。
11、在服务端循环进行消息阻塞(接收消息)的时候,这里跟tcp不同,不需要每次使用时重用或者是释放所绑定端口。
12、tcp在四次挥手以后还要等待客户端一分钟左右才会释放端口,udp属于突发通讯,来即收,挥即去。
13、所以在这里并不需要立马再次重用这个端口。
from socket import *
# 服务端 # 建立服务端socket
socket_serve = socket(AF_INET, SOCK_DGRAM)
# 确定本地端口,可能多个,所以不限
local_port = ('', 8989)
# 绑定本地端口
socket_serve.bind(local_port) while True:
# 本地端口监听客户端数据(接收数据)
socket_temp_serve_data = socket_serve.recvfrom(1024)
# 数据解码
socket_serve_data = socket_temp_serve_data[0].decode('gbk')
# 打印接受到的数据
print(socket_serve_data)
# 用户输入数据并对客户端发送
socket_serve_sendto_temp_data = input('服务端:')
#对用户输入的数据进行编码
socket_serve_sendto_temp_data = '服务端:' + socket_serve_sendto_temp_data
socket_serve_sendto_data = socket_serve_sendto_temp_data.encode('gbk')
# 传输数据给客户端
socket_serve.sendto(socket_serve_sendto_data, socket_temp_serve_data[1])
# 关闭socket服务端
# socket_serve.close()

  

最新文章

  1. BAT及各大互联网公司2014前端笔试面试题--JavaScript篇
  2. 【Ckediter】
  3. php基础知识整理
  4. wdcp安装memcached解决办法
  5. 【CentOS】压缩打包
  6. Async Programming - 1 async-await 糖的本质(1)
  7. Java学习笔记(十七)——java序列化
  8. 一个QQ木马的逆向分析浅谈(附带源码)
  9. 一个小巧的C++Log输出到文件类 (转)
  10. poj 1222 EXTENDED LIGHTS OUT(位运算+枚举)
  11. HTML+CSS学习笔记 (13) - CSS代码缩写,占用更少的带宽
  12. 自己动手实现STL:前言
  13. 【PythonChallenge】Level 3
  14. svo的一些博客解析
  15. 路由器wan口连接不上的问题
  16. 友坚恒天.开发板(Cotex-A9 Exynos4412 开发板)
  17. Notepad++使用图解
  18. 【Luogu P1074】靶形数独
  19. 【Python】Python-基础语法学习
  20. HDU 1159 Common Subsequence 【最长公共子序列】模板题

热门文章

  1. Chipmunk僵尸物理对象的出现和解决(一)
  2. 【一天一道LeetCode】#36. Valid Sudoku
  3. android官方技术文档翻译——switch 语句转换
  4. tomcat集群实现源码级别剖析
  5. shell的date命令:使用方法,以及小时、分钟的计算
  6. 【Java编程】Java学习笔记<一>
  7. OpenCV 矩形轮廓检测
  8. 文件lseek操作产生空洞文件的方法
  9. linux服务搭建----ssh服务开启
  10. 【ROM修改教程】添加高级电源重启菜单(安卓4.0.4官方ROM)