使用socketserver实现并发聊天

服务端可以比喻做一部电话。

("127.0.0.1", 8000)   比喻做服务端的一个号码。

1,server.py

import socketserver

class MyServer(socketserver.BaseRequestHandler):
  def handle(self):    # 逻辑代码
    print("服务器启动...")
    while True:
      conn = self.request  # self.request相当于电话里面的一个号码
      print("有客户端连接ip与端口号:", self.client_address)  
      while True:
        client_data = conn.recv(1024)  # 收
        print(str(client_data, 'utf8'))         inp = input('>>:')
        conn.sendall(bytes(inp, 'utf8'))  # 发
      conn.close() if __name__ == "__main__':
  server = socketserver.ThreadingTCPServer(('127.0.0.1', 8000), MyServer)  # 执行连接
  server.serve_forever()              # 执行def handle(self)逻辑代码

2, client.py

import socket
sk = socket.socket() address = ("127.0.0.1", 8000)  # 连接服务端的ip地址与端口号
sk.connect(address) while True:
  inp = input(">>:")    # 发
  sk.sendall(bytes(inp, 'utf8'))   data = sk.recv(1024)  # 收
  print(str(data, 'utf8))

import socketserver 模块 (27-03)的更多相关文章

  1. Python3 socketserver模块

    socketserver(在Python2.*中的是SocketServer模块)是标准库中一个高级别的模块.用于简化网络客户与服务器的实现(在前面使用socket的过程中,我们先设置了socket的 ...

  2. Python自动化之socketserver模块

    1 动态导入模块 import importlib aa = importlib.import_module("lib1.aa") //lib跟当前模块不是一个目录,aa是lib下 ...

  3. socket 和 SocketServer 模块

    一 .Socket 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket socket(TCP,IP)通常也称作"套接字",用于描述IP地址和端 ...

  4. SocketServer模块

    在利用select实现伪并发的socket博文中我们说了: 如果要实现一个server端可以和多个客户端进行通信可以使用 1.多线程 2.多进程 3.select I/O多路复用 在那篇博文中我们介绍 ...

  5. 浅析python中socketserver模块使用

    虽然说用python编写简单的网络程序狠方便,但是复杂一点的网络程序还是用现成的框架比较好,这样就可以专心事物逻辑,而不是套接字的各种细节.Socketserver模块简化了编写网络服务程序,同时so ...

  6. Python网络编程(2)-粘包现象及socketserver模块实现TCP并发

    1. 基于Tcp的远程调用命令实现 很多人应该都使用过Xshell工具,这是一个远程连接工具,通过上面的知识,就可以模拟出Xshell远程连接服务器并调用命令的功能. Tcp服务端代码如下: impo ...

  7. Python之socketserver模块和验证客户端链接的合法性

    验证客户端链接的合法性 分布式系统中实现一个简单的客户端链接认证功能 #_*_coding:utf-8_*_ from socket import * import hmac,os secret_ke ...

  8. socketserver模块TCP和UDP协议形式

    # >>>>>>>>>>>>>>>>>>>>服务端socketserver模块通 ...

  9. Python网络编程(3)——SocketServer模块与简单并发服务器

    主要类型 该模块有四个比较主要的类,其中常用的是 TCPServer 和 UDPServer. 1. TCPServer 2. UDPServer 3. UnixStreamServer,类似于TCP ...

随机推荐

  1. Java分页查询工具类

    public class PageList<T> { private int totalpage; //总页数 private int totalcount; //总记录数 private ...

  2. 阿里云重磅推出物联网设备身份认证Link ID²

     2018年12月19日,阿里云宣布推出新版物联网设备身份认证Link ID²及物联网安全运营中心Link SOC,护航万物智联.   随着越来越多的设备连接到网络中,随之而来的安全问题越来越突出. ...

  3. 谈谈E语言

    基于中国文化底蕴的编程语言,  绝对不是E语言那个样子. 基于中文的编程,必将是计算机届的一次原子爆炸!

  4. Java设计模式简单总结

    1.单例模式:在应用程序整个生命周期中,单例类的实例只有一个,并且会自动实例化.单例类的构造方法必须为私有,并且提供一个全局访问点 public class Test { private Test() ...

  5. 使用 Lookaside List 分配内存

    1. 概述 windows 提供了一种基于 lookaside list 的快速内存分配方案,区别于一般的使用 ExAllocatePoolWithTag() 系列函数的内存分配方式.每次从 look ...

  6. 剑指offer——10跳台阶演变

    题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法.   题解: 纯找规律题:   class Solution { public: ...

  7. 3.4_springboot2.x整合spring Data Elasticsearch

    Spring Data Elasticsearch 是spring data对elasticsearch进行的封装. 这里有两种方式操作elasticsearch: 1.使用Elasticsearch ...

  8. Hadoop和Spark的统一部署

  9. RDD运行原理

  10. python 的打开、读、写、追加操作

    读f = open('D:\最新全栈python第2期视频教程 全套完整版\day08-python 全栈开发-基础篇\新建文本文档.txt','r') # data = f.read(10000)# ...