2012-02-17 485 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