1.服务端

# 如果socket起一个tcp服务,在同一个时间只能和一个客户端通信

# 如果socketserver起一个服务,在同一个时间就可以和多个客户端通信了

# socketserver
# 是基于soccekt又进行了一层的封装 import socketserver # 要起socketserver,先写一个类
class MyServer(socketserver.BaseRequestHandler): # 必须继承一个socketserver处理基础请求的基类
def handle(self): # 必须有一个handle函数
# print(self.request.recv(1024)) # request相当于一个conn(一个客户端连接上来的连接符)
while True:
msg = self.request.recv(1024).decode('utf-8') print(msg)
info = input('输入发送到客户端的内容:')
self.request.send(info.encode('utf-8')) if __name__ == '__main__':
server = socketserver.ThreadingTCPServer(('127.0.0.1', 8080), MyServer) # 目的用多线程处理每个客户端连接请求.参数为ip端口与Myserver类名,得到一个对象
server.serve_forever() # 永远起一个socketserver tcp服务.

  客户端1

import socket

sk = socket.socket()

ip_port = ('127.0.0.1', 8080)

sk.connect(ip_port)

while True:
msg = input('发送到服务端的内容: ') if msg == 'q':
sk.send(b'q')
break sk.send(('饿了么:' + msg).encode('utf-8'))
ret = sk.recv(1024).decode('utf-8')
print(ret) sk.close()

  客户端2

import socket

sk = socket.socket()

ip_port = ('127.0.0.1', 8080)

sk.connect(ip_port)

while True:
msg = input('发送到服务端的内容: ') if msg == 'q':
sk.send(b'q')
break sk.send(('饿了么:' + msg).encode('utf-8'))
ret = sk.recv(1024).decode('utf-8')
print(ret) sk.close()

认识socketserver的更多相关文章

  1. Python(七)Socket编程、IO多路复用、SocketServer

    本章内容: Socket IO多路复用(select) SocketServer 模块(ThreadingTCPServer源码剖析) Socket socket通常也称作"套接字" ...

  2. 开发socketserver 以及定制开发自己的FTP服务器

    socket server 示例 #服务端程序 import socketserver class TcpHandler(socketserver.BaseRequestHandler): def h ...

  3. SocketServer

    SocketServer是基于socket写成的一个更强大的模块. SocketServer简化了网络服务器的编写.它有4个类:TCPServer,UDPServer,UnixStreamServer ...

  4. socket - socketserver - start TCP server

    前面提到如何使用socket模块启动tcpserver: 创建socket:sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 绑定ip: ...

  5. socketserver 分块记录

    网络编程 Socket(TCP,IP)套接字 服务端 运行起来, 客户端 客户端 客户端 客户端 服务端: import socket sk = socket.socket() #绑定端口号 sk.b ...

  6. socketserver服务器

    ''' 网络编程 Socket(TCP,IP)套接字 服务端 运行起来, 客户端 客户端 客户端 客户端 服务端: import socket sk = socket.socket() #绑定端口号 ...

  7. Python基础篇【第8篇】: Socket编程(二)SocketServer

    SocketServer 在上一篇文章中我们学习了利用socket模块创建socket通信服务,但细心学习后就会发现利用socket模块创建的服务无法进行多进程的处理,当需要进行大量请求处理时,请求就 ...

  8. 自己实现多线程的socket,socketserver源码剖析

    1,IO多路复用 三种多路复用的机制:select.poll.epoll 用的多的两个:select和epoll 简单的说就是:1,select和poll所有平台都支持,epoll只有linux支持2 ...

  9. Socket与SocketServer结合多线程实现多客户端与服务器通信

    需求说明:实现多客户端用户登录,实现多客户端登录一般都需要使用线程技术: (1)创建服务器端线程类,run()方法中实现对一个请求的响应处理: (2)修改服务器端代码,实现循环监听状态: (3)服务器 ...

  10. socketserver模块写的一个简单ftp程序

    一坨需求... 用户加密认证 允许同时多用户登录 每个用户有自己的家目录 ,且只能访问自己的家目录 对用户进行磁盘配额,每个用户的可用空间不同 允许用户在ftp server上随意切换目录 (cd) ...

随机推荐

  1. linux(centos8):使用namespace做资源隔离

    一,namespace是什么? namespace 是 Linux 内核用来隔离内核资源的方式. 它是对全局系统资源的封装隔离, 处于不同 namespace 的进程拥有独立的全局系统资源, 改变一个 ...

  2. 字符集、字符编码、国际化、本地化简要总结(UNICODE/UTF/ASCII/GB2312/GBK/GB18030)

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 环境说明   普通的linux 和 普通的windows.    ...

  3. oracle强制修改字符集

    首先查看服务端字符集 select * from v$nls_parameters where parameter = 'NLS_CHARACTERSET' NLS_CHARACTERSET WE8M ...

  4. Linux下更新JDK版本

    date: 2018-11-18 11:04:13 updated: 2018-11-18 11:04:13 1.输入 su 进入管理员权限 2.输入 rpm -qa | grep jdk 查看当前系 ...

  5. drf 视图使用及源码分析

    前言 drf视图的源码非常的绕,但是实现的功能却非常的神奇. 它能够帮你快速的解决ORM增删改查的重复代码,非常的方便好用. 下面是它源码中的一句话: class ViewSetMixin: &quo ...

  6. Luogu P4208 [JSOI2008]最小生成树计数

    题意 给定一个 \(n\) 个点 \(m\) 条边的图,求最小生成树的个数. \(\texttt{Data Range:}1\leq n\leq 100,1\leq m\leq 10^4\) 题解 一 ...

  7. vue-打包遇到的问题

    vue-打包 打包后用iframe引入的html文件乱码 原因: 解决:用live server打开就不会乱码 生产环境移除所有的console命令 三种解决方法 发现vue-cli3.0在打包过程中 ...

  8. BCVP,想真正为社区做努力的开发者们

    基于Net/Core,快速搭建 API & SPA 及微服务应用组织 BASE NETCORE (VUE) PROJECT TEAM 每一个.NET开发者都可以通过自己的开源项目(最好可以配套 ...

  9. 【面经】面试官:如何以最高的效率从MySQL中随机查询一条记录?

    写在前面 MySQL数据库在互联网行业使用的比较多,有些小伙伴可能会认为MySQL数据库比较小,存储不了很多的数据.其实,这些小伙伴是真的不了解MySQL.MySQL的小不是说使用MySQL存储的数据 ...

  10. Liquibase+SpringBoot的简单使用笔记!update+rollback

    该笔记记录了springboot整合liquibase之后,如何根据liquibase ChangeLogFile对数据库进行修改以及回滚操作 参考: baeldung.com JHipster 1. ...