博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
socketserver网络编程基础
阅读量:5763 次
发布时间:2019-06-18

本文共 1615 字,大约阅读时间需要 5 分钟。

http://www.cnblogs.com/alex3714/articles/5830365.html

并发处理

#!/usr/bin/env python# Author:Zhangmingdaimport socketserverclass Mytcphandler(socketserver.BaseRequestHandler):    '''    定义一个socketserver的handler处理类,必须继承socketserver.BaseRequestHandler    '''    def handle(self):        '''所有的与单个客户端的交互都在此方法'''        print('定义自己的socketserver.子handler类hander方法')        while True:            try:                print('客户端IP:{}端口:{}'.format(self.client_address[0], self.client_address[1]))                print('等待接收数据...')                self.data = self.request.recv(1024)                print('收到数据:',self.data.decode())                self.request.sendall(self.data.decode().upper().encode())            except ConnectionResetError as e:                print('连接出现错误/客户端已断开:%s'% e)                breakif __name__ == "__main__":    HOST,PORT = 'localhost',6969    print('开启服务,监听端口')    server = socketserver.ForkingTCPServer((HOST,PORT),Mytcphandler) #多进程并发    # server = socketserver.ThreadingTCPServer((HOST,PORT),Mytcphandler)#多线程并发    server.serve_forever()
服务端并发(多线程、多进程)
#!/usr/bin/env python# Author:Zhangmingda#!/usr/bin/env python# Author:Zhangmingdaimport  socketprint('创建客户端实例')client = socket.socket()print('开始连接服务器')client.connect(('localhost',6969))while True:    msg = input('>>>输入要发送的命令:')    print('开始发送数据')    client.send(msg.encode('utf-8')) #发送汉子,必须encode()成bytes类型数据进行传输    if msg == '断开':        print('关闭数据连接')        client.close()        break    print('开始接受数据')    recv_data = client.recv(1024)    print('返回数据:',recv_data.decode())
客户端

 

转载于:https://www.cnblogs.com/zhangmingda/p/9203492.html

你可能感兴趣的文章
多重影分身:一套代码如何生成多个小程序?
查看>>
Oracle将NetBeans交给了Apache基金会
查看>>
填坑记:Uncaught RangeError: Maximum call stack size exceeded
查看>>
SpringCloud之消息总线(Spring Cloud Bus)(八)
查看>>
DLA实现跨地域、跨实例的多AnalyticDB读写访问
查看>>
实时编辑
查看>>
北漂之毕业裁员后的又一波奇遇
查看>>
Python数据分析:pandas常用函数
查看>>
KVO原理分析及使用进阶
查看>>
Vue系列(四):模块化开发、Elment UI、自定义全局组件(插件)、Vuex
查看>>
【348天】每日项目总结系列086(2018.01.19)
查看>>
extjs-mvc结构实践(五):实现用户管理的增删改查
查看>>
【JS基础】初谈JS现有的数据类型
查看>>
【294天】我爱刷题系列053(2017.11.26)
查看>>
Microsoft发布了Azure Bot Service和LUIS的GA版
查看>>
Google发布Puppeteer 1.0
查看>>
窗口进度条及其高级使用
查看>>
实录分享&视频 | 微软Visual Studio Code是这样支持Docker的
查看>>
.NET开源现状
查看>>
Dave Farley:持续交付的基本原理
查看>>