脚本如下:

# -*- coding:utf-8 -*-
'''
@Author: Stefan@File:  server_listener.py@Date:  2016-11-09If you execute this test script on servers, you have to modify the system parameter below:
sysctl net.ipv4.tcp_tw_recycle=1
'''
import sys
sys.path.append('/export/servers/app/xxxx')
import time
import socket
import threading
import multiprocessing
from src.xxxxclient.xxxx_client.lib.socket import header_pack, receive
HEADER_LENGTH = 16
DEFAULT_TCP_PORT = 1104
DATA = {'xxxx_ADMIN': 'thread_keepalive'}count_of_processes = range(1)
# DO NOT modify the parameter below
count_of_threads = range(1)# Unit: second
execute_time = 60def loop(times):""":return:"""time_start_now = time.time()time_future = time_start_now + execute_timewhile True:if time_start_now > time_future:breakelse:time_start = time.time()S = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# S.connect(('127.0.0.1', DEFAULT_TCP_PORT))S.connect(('x.x.x.x', DEFAULT_TCP_PORT))header, data = header_pack(DATA, HEADER_LENGTH)S.sendall(header+data)header, result = receive(S, HEADER_LENGTH, 1024)S.close()time_end = time.time()time_used = time_end - time_startprint "Thread lasted %.2f sec. Status: %s" % (time_used, result)time_end_now = time.time()time_gap = time_end_now - time_start_nowtime_start_now += time_gapdef multi_threads():""":return:"""threads_list = list()for i in count_of_threads:t = threading.Thread(target=loop, args=str(count_of_threads[i]).split())threads_list.append(t)for i in count_of_threads:threads_list[i].start()for i in count_of_threads:threads_list[i].join()class muliti_process(multiprocessing.Process):""""""def __init__(self):""":return:"""multiprocessing.Process.__init__(self)self.processes_list = list()def run(self):""":return:"""for i in count_of_processes:p = multiprocessing.Process(target=multi_threads,)self.processes_list.append(p)for i in self.processes_list:i.start()if __name__ == '__main__':p = muliti_process()global_start = time.time()p.start()p.join()global_end = time.time()global_used = global_end - global_startprint "==================\nTotal %.2f sec" % global_used

转载于:https://www.cnblogs.com/stefan-liu/p/6138565.html

socket 多线程安全、粘包问题相关推荐

  1. python/socket编程之粘包

    python/socket编程之粘包 粘包 只有TCP有粘包现象,UDP永远不会粘包. 首先需要掌握一个socket收发消息的原理 1 2 3 4 5 6 7 8 9 10 11 12 13 14 发 ...

  2. socket编程 TCP 粘包和半包 的问题及解决办法

    socket编程 TCP 粘包和半包 的问题及解决办法 参考文章: (1)socket编程 TCP 粘包和半包 的问题及解决办法 (2)https://www.cnblogs.com/panchang ...

  3. SOCKET/串口通信粘包问题处理,附带详细代码

    UDP TCP或者串口通信中有可能会出现粘包问题.具体解决办法有以下几种 1.自定义包体格式包含包头+包体长度 2.加大读取缓冲区buffer 本文介绍第一种方法的 socket通信中我们一般开启一个 ...

  4. socket,与粘包

    1,socket(套接字) socket层 Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口 server端 import socket sk = socket.socket ...

  5. Socket编程 TCP粘包问题及解决方案

    ① TCP是个流协议,它存在粘包问题 TCP是一个基于字节流的传输服务,"流"意味着TCP所传输的数据是没有边界的.这不同于UDP提供基于消息的传输服务,其传输的数据是有边界的.T ...

  6. 什么是粘包?socket 中造成粘包的原因是什么? 粘包的处理方式

    1.粘包的概念 粘包:多个数据包被连续存储于连续的缓存中,在对数据包进行读取时由于无法确定发生方的发送边界,而采用某一估测值大小来进行数据读出,若双方的size不一致时就会使指发送方发送的若干包数据到 ...

  7. (Java)socket网络编程及处理socket粘包拆包问题

    目录 1.socket简介 2.TCP/IP协议 3.tcp三次握手 4.socket的一些接口函数原理 5.java socket 长连接粘包拆包问题 6.socket模拟服务端客户端发消息 7.U ...

  8. 并发编程知识总结,软件开发架构,socket套接字模板,粘包问题,struct解决粘包问题,上传大文件数据,socketserver,关于操作系统的发展史,进程,线程。...

    并发编程知识总结 软件开发架构 C/S: client:客户端 server:服务端 优点:占用网络资源少,软件的使用稳定 缺点:服务端更新后,客户端也要更新,需要使用多个软件,需要下载多个客户端 B ...

  9. Socket粘包问题

    这两天看csdn有一些关于socket粘包,socket缓冲区设置的问题,发现自己不是很清楚,所以查资料了解记录一下: 一两个简单概念长连接与短连接: 1.长连接 Client方与Server方先建立 ...

  10. Socket编程(4)TCP粘包问题及解决方案

    ① TCP是个流协议,它存在粘包问题 TCP是一个基于字节流的传输服务,"流"意味着TCP所传输的数据是没有边界的.这不同于UDP提供基于消息的传输服务,其传输的数据是有边界的.T ...

最新文章

  1. 数学上各种空间概念的关系图
  2. 浅谈强化学习的方法及学习路线
  3. asp.net oracle优化,[转]ASP.NET性能优化
  4. 笔记:Hadoop权威指南 第4章 Hadoop I/O
  5. Tableau 必知必会之使用环境的配置需求
  6. linux提示密码没有凑效,陈连福的生信博客 | 第16期培训班将于2021.01.23-2021.02.01期间在武汉市举办,提前报名有有优惠!...
  7. mysql导入数据库注释乱码_source命令 导入.sql文件时,中文乱码 或者是注释乱码...
  8. 用C#完成Swift远程推送通知
  9. 第六天 购车程序
  10. Python核心编程读笔 4
  11. 《码出高效-阿里巴巴Java开发手册-泰山版》阿里最新出品的泰山版Java开发手册,告别垃圾代码
  12. c语言图像峰值信噪比,PSNRSSIM
  13. 微信公众平台开发问答
  14. 数据库原理知识点总结一
  15. Maven打包 错误: 程序包org.junit不存在
  16. 别在让你的 await Streaking 了
  17. 记录自定义维护视图的修改日志
  18. 钻进梦露胯下看裤衩颜色
  19. 用户行为分析zhi应用分析模型
  20. 「不得不看的猴子摘桃问题」

热门文章

  1. PHP专题-开发基础(七)
  2. 爆牙齿的世界杯日记(阿根疼啦)
  3. 设计人员珍藏的在线处理图片的网址大集合
  4. go语言的书籍的淘宝调查
  5. superset各种数据库连接地址(持续更新中)
  6. intellij出现这种情况can not resolve symbol ‘java‘
  7. intellij工程文件名都是红色+右键没有run选项
  8. linux英文系统+搜狗输入法
  9. xfce4的右键打开终端失效
  10. NeHe OpenGL课程 网址整理