#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2019/1/13 22:03
# @Author : ChenAdong
# @email : aiswell@foxmail.com # 实现tcp服务器轮流向多个客户端服务(同时只有一个客户端接受服务) import socket def tcp_server():
# 创建套接字
socket_serve = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 绑定端口,一般ip地址不绑定,直接给空值;并且地址是元组形式
socket_serve.bind((" ", 8081)) # 监听端口
socket_serve.listen(3) while True:
new_socket, client_addr = socket_serve.accept()
# 阻塞,直到有客户端连接,多个用户连接时候,组成一个列表,下面再逐个拿出每个用户地址,创建新的套接字,进行通信
while True:
recv_data = new_socket.recv(1024)
# 如果客户端关闭,会自动发送空值给服务器,可以用这个判断客户端关闭;这里当客户端关闭时候,服务器也关闭套接字
# 无法直接发送一个空值
if recv_data:
new_socket.send("hello".encode("utf-8"))
else:
break
new_socket.close() if __name__ == "__main__":
tcp_server()

  

最新文章

  1. 将一张表的数据,拷贝到另一张表中sql
  2. httpd练习.md
  3. MySQL Plugin 'InnoDB' init function returned error
  4. [转]在Windows中配置Rsync同步
  5. maven profile动态选择配置文件
  6. Android:实现数组之间的复制
  7. 经典 Linux & VIM 教程
  8. Python中lstrip使用心得
  9. for语句之打印三角形问题
  10. Download a image 图片另存为
  11. log4j的详细配置
  12. JMeter学习non-gui模式运行
  13. Nginx实现负载均衡的几种方式
  14. Linux Nginx Web环境安装SSL证书后强行指向HTTPS方法
  15. android-glsurfaceview Activity框架程序
  16. PAT 1005 Spell It Right
  17. CPU对指令长度的判断
  18. flex-grow
  19. JavaScript实现二叉树算法
  20. 如何将TNJ的源代码添加到eclipse[转]

热门文章

  1. iOS开发笔记-一种任意字体、颜色混排UILabel的实现
  2. setting-mirrorO以及下载jar包流程简介
  3. list源码3(参考STL源码--侯捷):push_front、push_back、erase、pop_front、pop_back、clear、remove、unique
  4. 基于Docker+Prometheus+Grafana监控SpringBoot健康信息
  5. kafka的迁移干货
  6. Zabbix4.2.0基本配置和邮件报警
  7. Linux 常用命令 | mkdir/rmdir/touch 的使用
  8. 附实例!实现iframe父窗体与子窗体的通信
  9. Java 容器源码分析之ConcurrentHashMap
  10. 高并发连接导致打开文件过多:java.io.IOException: Too many open files 解决方法