用socketserver创建一个服务的步骤:

1  创建一个request handler class(请求处理类),合理选择StreamRequestHandler和DatagramRequestHandler之中的一个作为父类(当然,使用BaseRequestHandler作为父类也可),并重写它的handle()方法。

2  实例化一个server class(服务类)对象,并将服务的地址和之前创建的request handler class传递给它。

3  调用server class对象的handle_request() 或 serve_forever()方法来开始处理请求。

服务器端代码:

import socketserver

class MyTCPHandler(socketserver.BaseRequestHandler): #自己写的请求处理类,每个客户端的请求过来,都会实例它。MyTCPHandler

    def handle(self): #重写请求处理类的handle(),跟客户端所有的交互都是在handle里完成的。
while True:
try:
self.data = self.request.recv(1024).strip()
print("{} wrote:".format(self.client_address[0])) #打印客户端的IP地址
print(self.data) self.request.sendall(self.data.upper()) #变成大写,传回给客户端。
except ConnectionResetError as e:
print('Error is: ',e) #客户端断开时抛出的异常
break if __name__ == "__main__":
HOST, PORT = "localhost", 9999
server = socketserver.ThreadingTCPServer((HOST, PORT), MyTCPHandler) #实例化一个server class(服务类)对象,并将服务的地址和之前创建的request handler class传递给它
server.serve_forever() #调用server class对象的serve_forever()方法来开始处理请求。处理多个请求。

客户端代码:

import socket
client=socket.socket()
client.connect(('localhost',9999))
while True:
msg=input(">>:").strip()
if len(msg)==0:continue
client.send(msg.encode('utf-8'))
data=client.recv(1024)
print("recv:",data.decode())
client.close()

最新文章

  1. Jmeter3.0发布,版本更新都更新了什么
  2. 用collectionview实现瀑布流-转(后面附demo,供参考)
  3. C#交错数组的用法
  4. extjs学习(关于grid)
  5. WCF小结
  6. 放松时刻——C#分割字符串
  7. FZU 2214 Knapsack problem 01背包变形
  8. JavaWeb项目开发案例精粹-第2章投票系统-003Dao层
  9. BZOJ 1741: [Usaco2005 nov]Asteroids 穿越小行星群
  10. 《Unix环境高级编程》环境搭建
  11. 从零开始学习UNITY3D(GUI篇 GUI.Window)
  12. (转)Java对象克隆(Clone)及Cloneable接口、Serializable接口的深入探讨
  13. vue UI库iview源码解析(2)
  14. ansible学习(二)
  15. vue解决前后端跨域问题
  16. 多个gridSelect引用同一个dizData
  17. [原][粒子特效][spark]插值器interpolator
  18. stack && queue
  19. Python实现Json结构对比的小工具兼谈编程求解问题
  20. 2017百度春招<有趣的排序>

热门文章

  1. 3D Touch初探
  2. ORB-SLAM(五)KeyFrame类-最小生成树
  3. Servlet的5种方式实现表单提交(注册小功能)
  4. MySQL☞in语句
  5. Web自动化selenium技术快速实现爬虫
  6. Linux命令应用大词典-第45章 服务器配置
  7. jmeter链接数据库问题汇总
  8. Map Reduce Application(Join)
  9. 蓝牙核心技术概述(四):蓝牙协议规范(HCI、L2CAP、SDP、RFOCMM)(转载)
  10. 【转】自定义(滑动条)input[type="range"]样式