这是一个python网络通讯服务器端的代码demo,能够同时处理多个客户端的连接请求。

from socket import *
import threading
from datetime import *
import time
import signal server=socket(AF_INET,SOCK_STREAM)
server.setsockopt(SOL_SOCKET,SO_REUSEADDR,1)
server.bind(("",4000))
server.listen(10)
print('waiting to connecting from clients') def client_thread(client_socket,client):
global connect_count
global is_exit
while not is_exit:
data=client_socket.recv(1024) # when return value is b'',the connect with client is close
if data !=b'':
print(str(datetime.now()),' ',client[0],':',data)
client_socket.send(bytes('数据接收成功!', encoding = "utf8") )
if data=="over" or data ==b'':
if mutex_num.acquire(1):
connect_count=connect_count-1
print("client",client[0],"shutdown,current connect count is",connect_count)
mutex_num.release()
client_socket.close()
break def handle(signum, frame):
global is_exit
is_exit = True
print("receive a signal {0},is_exit={1}").format(signum, is_exit) signal.signal(signal.SIGINT, handle)
signal.signal(signal.SIGTERM, handle) mutex_num = threading.Lock() connect_count = 0
max_connect_num = 10
is_exit = False
thread_set = [] while not is_exit:
client_socket, client = server.accept()
if mutex_num.acquire(1):
connect_count = connect_count + 1
print("receive new connect from:", client, "current connect count :", connect_count)
mutex_num.release()
t = threading.Thread(target=client_thread, args=(client_socket, client))
t.setDaemon(True)
t.start()
thread_set.append(t) while (1):
isalive = False
for t in thread_set:
flag = t.is_alive()
isalive = isalive or flag
if not isalive:
break server.close()

  

python 网络通讯 服务器端代码demo,能够同时处理多个客户端的连接请求的更多相关文章

  1. python网络数据采集的代码

    python网络数据采集的代码 https://github.com/REMitchell/python-scraping

  2. Python网络编程常用代码

    服务器端代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 # -*- coding: cp936 -*- ...

  3. 《python 网络数据采集》代码更新

    <python 网络数据采集>这本书中会出现很多这一段代码: 1 from urllib.request import urlopen 2 from bs4 import Beautifu ...

  4. MFC socket网络通讯核心代码

    服务器: AfxSocketInit();//初始化,必须执行这个函数socket才能正常执行 server.Create(10086); server.Listen(10); while(1) { ...

  5. Muduo网络库实战(二):实现服务器与客户端的连接

    1. 方案的确定 1)基本需求 用户1000+, IO压力不大: 多个客户端打开网站,输入查询字符串strclient,发送给服务器=>服务器接收客户端发过来的数据并处理,将结果返回给客户端: ...

  6. 第九章:Python の 网络编程基础(一)

    本課主題 何为TCP/IP协议 初认识什么是网络编程 网络编程中的 "粘包" 自定义 MySocket 类 本周作业 何为TCP/IP 协议 TCP/IP协议是主机接入互网以及接入 ...

  7. python网络编程学习笔记(三):socket网络服务器(转载)

    1.TCP连接的建立方法 客户端在建立一个TCP连接时一般需要两步,而服务器的这个过程需要四步,具体见下面的比较. 步骤 TCP客户端 TCP服务器 第一步 建立socket对象  建立socket对 ...

  8. Python网络编程笔记

    01. UDP(user datagram protocol)用户数据报协议 01. 特点 01. 无连接 02. 不可靠 03. 每个被传输的数据报必须限定在64KB之内 02. 优点:效率高s 缺 ...

  9. python网络编程——socket基础篇

    python的网络编程比c语言简单许多, 封装许多底层的实现细节, 方便程序员使用的同时, 也使程序员比较难了解一些底层的东西. 1 TCP/IP 要想理解socket,首先得熟悉一下TCP/IP协议 ...

随机推荐

  1. CSS框架Bootstrap

    作为一个软件开发人员,经常接触和使用框架是再平常的事情不过了.但是这些框架基本都是和语言相关的,比如WEB框架SpringMVC,JavaEE框架Spring,ORM框架Hibernate,还有Jav ...

  2. java中的位运算及移位运算

    为了方便对二进制位进行操作,Java给我们提供了以下四个二进制位操作符: &    按位与 |     按位或 ^    按位异或 ~    按位取反 Java中有三个移位运算符: 左移:&l ...

  3. 前端工具gulp2

    var gulp = require('gulp'); var less = require('gulp-less'); var htmlmin = require('gulp-htmlmin'); ...

  4. java操作Excel的poi 创建一个sheet页

    package com.java.poi; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.us ...

  5. javeee 字节Buffered

    package Zy; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io. ...

  6. ivew使用星星评分

    这组件好像有问题,不知道是我们项目环境造成的还是什么,初始化半星不能正常显示,显示的全星. 1.template <div style="display:inline-block;ma ...

  7. PAT_A1152#Google Recruitment

    Source: PAT A1152 Google Recruitment (20 分) Description: In July 2004, Google posted on a giant bill ...

  8. Selenium3+python自动化 -JS处理滚动条

    selenium并不是万能的,有时候页面上操作无法实现的,这时候就需要借助JS来完成了. 常见场景: 当页面上的元素超过一屏后,想操作屏幕下方的元素,是不能直接定位到,会报元素不可见的. 这时候需要借 ...

  9. JVM 性能调优监控工具 jps、jstack、jmap、jhat、jstat、hprof 使用详解

    转自:  https://my.oschina.net/feichexia/blog/196575 摘要: JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConso ...

  10. NOIP2013 DAY2 T3火车运输

    传送门 题目描述 A 国有 n 座城市,编号从 1 到 n,城市之间有 m 条双向道路.每一条道路对车辆都有重量限制,简称限重.现在有 q 辆货车在运输货物, 司机们想知道每辆车在不超过车辆限重的情况 ...