博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TCP ZeroWindow问题
阅读量:6683 次
发布时间:2019-06-25

本文共 1692 字,大约阅读时间需要 5 分钟。

  hot3.png

在测试中发现,如果发送端一次性发送大量的数据,然后关闭session,接收端来不及处理,就会发出TCP ZeroWindow报文

Recv 脚本:

# -*- coding:utf-8 -*-'''创建服务器端程序,用来接收客户端传进的数据'''from socket import *from time import ctimeimport timeimport ConfigParserdef server():    HOST = '172.21.35.81'    PORT = 10522    ADDR = (HOST,PORT)    server_socket = socket(AF_INET,SOCK_STREAM)    server_socket.bind(ADDR)    server_socket.listen(5)    '''Config information'''    cfg = ConfigParser.ConfigParser()    cfg.read("Config.ini")    src = cfg.get("FILE", "RECV_FILE")    while True:        print 'Waiting for connecting ......'        tcpclientsocket,addr = server_socket.accept()        print 'Connected by ',addr        recvfile = open(src, 'wb')        while True:            data = tcpclientsocket.recv(1)            if not data:                break            else:                recvfile.write(data)            #print data                 time.sleep(5)        recvfile.close()        print 'Received Data Success\n'        tcpclientsocket.close()    server_socket.close()server()

Send 脚本:

# -*- coding:utf-8 -*-'''创建客户端程序,向服务器传递数据'''from socket import *import sysimport osimport ConfigParserfrom subprocess import *'''Config information'''cfg = ConfigParser.ConfigParser()cfg.read("Config.ini")src = cfg.get("FILE", "SEND_FILE")#def client():HOST = '127.0.0.1'PORT = 10521length = os.path.getsize(src)f1 = open(src, 'rb')countent = f1.read()f1.close()    clientsocket = socket(AF_INET,SOCK_STREAM)clientsocket.connect((HOST, PORT))clientsocket.send(countent)clientsocket.close()print 'Send Data OK'

测试配置文件,需要在当前目录放一个比较大的文件作为发送数据:(configure.ini)

[FILE]SEND_FILE = welcome.wavRECV_FILE = save_welcome.wav

 

转载于:https://my.oschina.net/665544/blog/1648934

你可能感兴趣的文章
Nagios之安装篇
查看>>
平衡二叉树中第k小的数 Kth Smallest Element in a BST
查看>>
我的友情链接
查看>>
Vyos防火墙功能配置
查看>>
Redhat内核编译
查看>>
Hyper-V 2016 系列教程4 Hyper-V 虚拟机的新建
查看>>
Flask开发
查看>>
trickle 限制用户空间带宽
查看>>
SQL事务
查看>>
GRE配置案例实现远程网络通信
查看>>
不用linux作为桌面的N个理由
查看>>
Rabbitmq学习之路3-cluster
查看>>
iptables实现NAT(网络搜索整理)
查看>>
关于ip地址
查看>>
ASP.NET自定义404和500错误页面
查看>>
OpenGL学习(七)纹理映射
查看>>
一些必不可少的Sublime Text 2插件
查看>>
测试项目
查看>>
第一章ASP.NET SignalR简介
查看>>
SSH
查看>>