day32-socketserver
#socketserver 是在socket基础上进行了封装,它让server可以实时跟多个client进行通信。
#thread线程:一个程序有一个线程,一个线程是调度cpu的最小单位。程序运行才产生线程,不运行就不产生。
#如果启用多个线程去接收多个client的请求,就能实现并发的效果。 # server:
import socketserver
class MyServer(socketserver.BaseRequestHandler): #必须继承此父类
def handle(self): #必须定义此函数,self.request相当于conn
while True:
msg = self.request.recv(1024).decode('utf-8')
print(msg)
if msg == 'q':
break
info = input('server:')
self.request.send(info.encode('utf-8')) if __name__ == '__main__':
server = socketserver.ThreadingTCPServer(('127.0.0.1',8888),MyServer) #实例化对象 = 类()
server.serve_forever() #client1:
import socket
sk = socket.socket()
sk.connect(('127.0.0.1',8888)) while True:
info = input('client1:')
if info == 'q':
sk.send(info.encode('utf-8'))
break
sk.send(info.encode('utf-8'))
ret = sk.recv(1024).decode('utf-8')
print(ret) sk.close() #client2:
import socket
sk = socket.socket()
sk.connect(('127.0.0.1',8888)) while True:
info = input('client2:')
if info == 'q':
sk.send(info.encode('utf-8'))
break
sk.send(info.encode('utf-8'))
ret = sk.recv(1024).decode('utf-8')
print(ret) sk.close()
day32-socketserver的更多相关文章
- Python(七)Socket编程、IO多路复用、SocketServer
本章内容: Socket IO多路复用(select) SocketServer 模块(ThreadingTCPServer源码剖析) Socket socket通常也称作"套接字" ...
- 开发socketserver 以及定制开发自己的FTP服务器
socket server 示例 #服务端程序 import socketserver class TcpHandler(socketserver.BaseRequestHandler): def h ...
- SocketServer
SocketServer是基于socket写成的一个更强大的模块. SocketServer简化了网络服务器的编写.它有4个类:TCPServer,UDPServer,UnixStreamServer ...
- socket - socketserver - start TCP server
前面提到如何使用socket模块启动tcpserver: 创建socket:sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 绑定ip: ...
- socketserver 分块记录
网络编程 Socket(TCP,IP)套接字 服务端 运行起来, 客户端 客户端 客户端 客户端 服务端: import socket sk = socket.socket() #绑定端口号 sk.b ...
- socketserver服务器
''' 网络编程 Socket(TCP,IP)套接字 服务端 运行起来, 客户端 客户端 客户端 客户端 服务端: import socket sk = socket.socket() #绑定端口号 ...
- Python基础篇【第8篇】: Socket编程(二)SocketServer
SocketServer 在上一篇文章中我们学习了利用socket模块创建socket通信服务,但细心学习后就会发现利用socket模块创建的服务无法进行多进程的处理,当需要进行大量请求处理时,请求就 ...
- 自己实现多线程的socket,socketserver源码剖析
1,IO多路复用 三种多路复用的机制:select.poll.epoll 用的多的两个:select和epoll 简单的说就是:1,select和poll所有平台都支持,epoll只有linux支持2 ...
- Socket与SocketServer结合多线程实现多客户端与服务器通信
需求说明:实现多客户端用户登录,实现多客户端登录一般都需要使用线程技术: (1)创建服务器端线程类,run()方法中实现对一个请求的响应处理: (2)修改服务器端代码,实现循环监听状态: (3)服务器 ...
- socketserver模块写的一个简单ftp程序
一坨需求... 用户加密认证 允许同时多用户登录 每个用户有自己的家目录 ,且只能访问自己的家目录 对用户进行磁盘配额,每个用户的可用空间不同 允许用户在ftp server上随意切换目录 (cd) ...
随机推荐
- JS-语句三
关于if语句的几个练习: 1. 输入三个整数,x,y,z,最终以从小到大的方式输出. 思路:先列举出每种可能,然后做if套嵌. var x = prompt("请输入一个数字 ...
- Java自学-集合框架 聚合操作
聚合操作 步骤 1 : 聚合操作 JDK8之后,引入了对集合的聚合操作,可以非常容易的遍历,筛选,比较集合中的元素. 像这样: String name =heros .stream() .sorted ...
- 施魔法(DP)
链接:https://ac.nowcoder.com/acm/contest/3003/H来源:牛客网 题目描述 牛可乐有 n 个元素( 编号 1..n ),第 i 个元素的能量值为 ai. 牛可乐 ...
- C/C++学习笔记-gcc动态库及静态库
gcc工作流程 1.预处理 gcc -E 2.编译 gcc -S 3.汇编 gcc -c 4.链接 没参数制作静态库: 1.命名规则:libMyName.a2.制作步骤: ①.生成.o gcc -c ...
- 如何解决Tomcat端口号被占用
在eclipse中配置好tomcat服务器后,启动时提示错误如下图 提示端口被占用. 第一种方法: 结束占用端口的进程 第一步:netstat -aon|findstr "端口号" ...
- liunx搭建配置
预安装准备工具 yum -y install gcc gcc-c++ wget cmake 安装 软件存放目录: /lnmp/ 软件安装目录: /usr/local/ 1.下载安装PCRE wget ...
- linux的/dev内容介绍
http://www.cnblogs.com/lidabo/p/4505360.html 这个结合那个linux的终端介绍 https://zhidao.baidu.com/question/1742 ...
- Necklace HDU - 3874 (线段树/树状数组 + 离线处理)
Necklace HDU - 3874 Mery has a beautiful necklace. The necklace is made up of N magic balls. Each b ...
- Java 工厂模式登陆系统实现
没有工厂模式 设定一个登陆系统 UserServiceImp.java public class UserServiceImp { public boolean login(String userna ...
- 面向对象 part7 class
类的定义 类实际上是个“特殊的函数“,就像能够定义函数表达式和函数声明一样,类语法 有两个组成部分:类表达式和类声明式 类声明 类声明没有提升 静态方法 只有构造函数名可以调用,实例无法使用.常用于应 ...