网络编程之socketserver初识
#!/usr/bin/env python
# @Author : "Wjl"
# @Date : 2017/12/22
# @Time : 11:07
# @SoftWare : PyCharm
# @File : Server端并发聊天_Server.py import socketserver """
socketserver模块是python为我们写好的一个封装了网络操作相关的模块
比我们自己手写socket方便
""" class MyServer(socketserver.BaseRequestHandler): # 必须继承socketserver.BaseRequestHandler def handle(self): # 必须重写父类的handle方法,我们的逻辑就写在handle方法中
print("服务端启动...")
while True:
conn = self.request # self.request 就等于 TcpSocket.accept() 返回的socket对象
print(self.client_address) # self.client_address 就等于 TcpSocket.accept 返回的addr元组
while True:
# 将接收到的数据原路返回
client_data = conn.recv(1024)
print(str(client_data, "utf8"))
print("waiting...")
conn.sendall(client_data)
conn.close() if __name__ == '__main__':
server = socketserver.ThreadingTCPServer(('127.0.0.1', 8888), MyServer) # 要实现并发就必须调用ThreadingTCPServer
server.serve_forever() # 启动
#!/usr/bin/env python
# @Author : "Wjl"
# @Date : 2017/12/22
# @Time : 11:07
# @SoftWare : PyCharm
# @File : Server端并发聊天_Client.py import socket TcpSocket = socket.socket() TcpSocket.connect(('127.0.0.1', 8888)) while True:
user_input = input('>>> ')
if user_input == 'q':
break TcpSocket.send(user_input.encode('utf-8'))
data = TcpSocket.recv(1024)
print(data.decode('utf-8')) TcpSocket.close()
网络编程之socketserver初识的更多相关文章
- python3网络编程之socketserver
本节主要是讲解python3网络编程之socketserver,在上一节中我们讲到了socket.由于socket无法支持多用户和多并发,于是就有了socket server. socket serv ...
- 网络编程之socketserver
网络编程之socketserver """ socketserver.py 中的5个基础类 +------------+ | BaseServer | +-------- ...
- 网络编程之socketserver以及socket更多方法
关于socketserver 关于socket的更多方法 服务端套接字函数: s.bind() 绑定(主机,端口号)到套接字 s.listen() 开始tcp监听 s.accept () 被动接受tc ...
- 网络编程之socket
网络编程之socket socket:在网络编程中的一个基本组件,也称套接字. 一个套接字就是socket模块中的socket类的一个实例. 套接字包括两个: 服务器套接字和客户机套接字 套接字的实例 ...
- [深入浅出WP8.1(Runtime)]网络编程之HttpClient类
12.2 网络编程之HttpClient类 除了可以使用HttpWebRequest类来实现HTTP网络请求之外,我们还可以使用HttpClient类来实现.对于基本的请求操作,HttpClient类 ...
- java网络编程之TCP通讯
java中的网络编程之TCP协议的详细介绍,以及如何使用,同时我在下面举2例说明如何搭配IO流进行操作, /* *TCP *建立连接,形成传输数据的通道: *在连接中进行大数据量传输: *通过三次握手 ...
- 网络编程之UDP编程
网络编程之UDP编程 UDP协议是一种不可靠的网络协议,它在通信的2端各建立一个Socket,但是这个Socket之间并没有虚拟链路,这2个Socket只是发送和接受数据的对象,Java提供了Data ...
- 网络编程之TCP编程
网络编程之TCP编程 前面已经介绍过关于TCP协议的东西,这里不做赘述.Java对于基于TCP协议的网络通信提供了良好的封装,Java使用socket对象来代表两端的通信窗口,并通过Socket产生I ...
- 网络编程之Socket & ServerSocket
网络编程之Socket & ServerSocket Socket:网络套接字,网络插座,建立网络通信连接至少要一对端口号(socket).socket本质是编程接口(API),对TCP/IP ...
随机推荐
- hbase(一)
1.hbase安装参考 http://blog.csdn.net/wild46cat/article/details/53214159 2.遇到的问题: ERROR: The node /hbase ...
- BZOJ 2599: [IOI2011]Race
点分治,定权值,求另一关键字最小 不满足前缀加减性 可以按序遍历,用一数组$t[] 来维护路径为i的最小边数$ 再对于一个直系儿子对应的子树,先算距离求答案再更新$t数组,这样就不会重复$ #incl ...
- 写入Csv
//定义文件输出流 FILE *f; f = fopen("a.csv" , "wb"); fprintf(f,"aaa,23,sdf\n" ...
- WEB项目异常处理
package cn.rest.advice; import javax.servlet.http.HttpServletResponse; import org.slf4j.Logger;impor ...
- Error: Flash Download failed - "Cortex-M0"
今天在调试程序时.DEMO板下载几次后就提示Flash下载失败: Keil v4里面的设置都没有动过.不可能被修改.此时.使用新唐的ICP Progra ...
- 在Windows下安装运行Kafka
一.安装JAVA JDK 1.下载安装包 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151. ...
- [CF1042F]Leaf Sets
题意:给定一棵$n$个点的树,将叶子节点分为数个集合使集合里点对最长距离不超过$k$,求最少集合数.($n\le1000000$) 首先我们可以想到,这道题并不是让你构造最优方案,因为只要把所有叶子节 ...
- CentOS7系统安装配置samba服务
# 查询是否已经安装了Samba rpm -qi samba # 安装 yum -y install samba samba-client samba-common # 添加新用户 useradd s ...
- Apache ab 测试结果的分析
以前安装好APACHE总是不知道该如何测试APACHE的性能,现在总算找到一个测试工具了.就是APACHE自带的测试工具AB(apache benchmark).在APACHE的bin目录下.格式: ...
- 【eclipse】启动不了报错java was started but returned exit code=13
原因是jdk与eclipse的版本不对,一个是32位的一个是64位的.