2012-02-17 15 views
1

我在使用SL4A的Android 2.3驱动的HTC手机上运行Python ...所以我编写了一个代码来检索加速度计值并通过套接字将它们发送到我的电脑!问题是,在手机上,代码每100ms获取一个值,我使用一个while循环来继续发送给PC。但PC不会以相同的速度获取值,我的意思是慢,刚记住的是,我修改了值,像这样:Python Socket传输速度太低

> [0.0,1.0,-5.0] 
> [0.0,2.0,-2.0] a list of Rounded floats 
> ... 

,这里是我的服务器代码(运行在PC上):

import socket 

HOST = ""    
PORT = 55600    
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
s.bind((HOST, PORT)) 
s.listen(1) 
conn, addr = s.accept() 
print 'Connected by', addr 
while 1: 
    data = conn.recv(1024) 
    print data 
    if not data: break 
conn.close() 

任何帮助,使其更快?

+1

这个问题不能没有附加信息的答案。你是什​​么意思慢? 100.01ms的间隔比100ms的间隔慢,但由于网络延迟而完全预期。另外,你可以发布你正在使用的程序*发送*值?为了调试问题,您还应该在每条消息中包含设备本地时间的时间戳,以便排除调度程序问题。 – phihag 2012-02-17 11:11:20

+0

嘿Phihag!第一thnx为您的cmmnt!所以我的意思是个人电脑收到的价值太慢了,有时候忽略了某些人!我认为这是一个连接问题,可能应该修改传输速度或使用其他连接协议! – oudouz 2012-02-18 10:32:42

回答

0

我会改变的第一件事是摆脱循环中的打印语句。 IO非常缓慢。当然,这是假设你正在计划使用这些值做些什么,除了将它们显示在屏幕上;)

+0

对不起兄弟!事实并非如此!我已经尝试过了......但没有什么有趣的... – oudouz 2012-02-18 10:31:44