场景。我有一个客户端与服务器的两个网络连接。一个连接使用手机,另一个连接使用wlan连接。模拟python中慢速网络的简单方法
,我已经解决了这一问题的方法是通过让服务器在两个端口上侦听。但是,移动连接应该比wlan连接慢。发送的数据通常只是一行文本。我通过允许移动连接以5秒的间隔发送数据来解决较慢的连接问题,因此wlan连接的间隔为一秒。
但是有没有更好的方法来做减速?也许通过发送更小的数据包,意味着我需要发送更多的数据?
任何想法都可以减慢其中一个连接的速度吗?
Orjanp
一个简单的客户端示例只有一个连接。
def client():
import sys, time, socket
port = 11111
host = '127.0.0.1'
buf_size = 1024
try:
mySocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
mySocket.connect((host, port))
except socket.error, (value, message):
if mySocket:
mySocket.close()
print 'Could not open socket: ' + message
sys.exit(1)
mySocket.send('Hello, server')
data = mySocket.recv(buf_size)
print data
time.sleep(5)
mySocket.close()
client()
一个简单的服务器监听一个端口。
def server():
import sys, os, socket
port = 11111
host = ''
backlog = 5
buf_size = 1024
try:
listening_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
listening_socket.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
listening_socket.bind((host, port))
listening_socket.listen(backlog)
except socket.error, (value, message):
if listening_socket:
listening_socket.close()
print 'Could not open socket: ' + message
sys.exit(1)
while True:
accepted_socket, adress = listening_socket.accept()
data = accepted_socket.recv(buf_size)
if data:
accepted_socket.send('Hello, and goodbye.')
accepted_socket.close()
server()
你想减慢什么? – 2009-12-02 15:20:52
相关:http://stackoverflow.com/questions/1094760/network-tools-that-simulate-slow-network-connection – ChristopheD 2009-12-02 15:20:56
这是一个困难的问题..移动连接意味着更长的旅行时间/更多的下降包等 它是没有真正的模拟,只是以较慢的间隔发送它们。 – Shirkrin 2009-12-02 15:39:18