进程内会生成一个主线程,让主线程执行server函数,server函数核心是accept(),让主线程干accept的工作, 建立连接,每建立一个连接应该执行通信函数

每建立一个连接就是生成一个子线程

服务端

from socket import *
from threading import Thread def communicate(conn):
''' 通信功能 '''
while True:
try:
data = conn.recv(1024)
if not data:break
conn.send(data.upper()) except ConnectionResetError:
break conn.close() def server(ip,port):
''' 负责建立连接 accept''' server = socket(AF_INET, SOCK_STREAM)
server.bind((ip,port))
server.listen(5) while True:
conn,addr = server.accept() t = Thread(target=communicate, args=(conn,),)
t.start() server.close() if __name__ == "__main__":
server('127.0.0.1', 8080)

客户端

from socket import *

client = socket(AF_INET, SOCK_STREAM)
client.connect(('127.0.0.1', 8080)) while True:
msg = input(">>>:").strip()
if not msg:break
client.send(msg.encode("utf-8"))
data = client.recv(1024)
print(data.decode("utf-8")) client.close()

执行结果

最新文章

  1. uva 1599 ideal path(好题)——yhx
  2. C++与C的指针的不同
  3. hdu2068RPG的错排
  4. 在SecureCRT中使用rz和sz传输文件
  5. iOS: 如何正确的绘制1像素的线
  6. freeCodeCamp:Title Case a Sentence
  7. 【jQuery基础学习】06 jQuery表单验证插件-Validation
  8. for 穷举、迭代 while循环
  9. 所有外包项目威客网站列表----来自程序员接私活网qxj.me
  10. [转] web.xml文件详解
  11. dokcer 运行和进入容器
  12. HDU2504:又见GCD
  13. PrintWriter用法简析
  14. 爬取拉勾部分求职信息+Bootstrap页面显示
  15. JavaScript基本语法2
  16. jquery各种事件使用方法总结(from:天宇之游)
  17. 关闭PHP的opcache缓存
  18. excel的C#操作教程
  19. C# 读取Excel表格内容,以及NPOI的使用
  20. SCRIPT7002: XMLHttpRequest: 网络错误 0x2efe, 由于出现错误 00002efe 而导致此项操作无法完成

热门文章

  1. Python可迭代序列反转总结
  2. javascript中constructor指向问题
  3. os.system 的坑,'C:\Program' 不是内部或外部命令,也不是可运行的程序 或批处理文件
  4. C# 之抽象类
  5. Idea 一个窗口打开多个项目
  6. Spring 动态多数据源
  7. SpringBoot整合Elastic-job(详细)
  8. 小程序上传wx.uploadFile - 小程序请假-请求
  9. Selenium 环境安装
  10. TC-SRM391-div2-SortingGame(BFS,STL)