2012-02-17 24 views
1

私はAndroid 2.3搭載のHTC携帯電話でSL4Aを使用してPythonを実行していますので、加速度計の値を取得してソケット経由でPCに送信するコードを書きました!問題は、電話でコードが100msごとに値を取得し、whileループを使用してPCに送信することです。しかし、PCが同じ速度で値を取得していない、私はそれが遅くだし、ちょうど私がそうのようになり値を変更し、その心に留めておくことを意味:Pythonソケットの転送速度が遅すぎる

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

、ここで私のサーバーコードです(ランニングパソコンの場合):

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

+0

ちょっとPhihag!あなたのための1番目のthnx!だから私は、PCがあまりにもゆっくりと値を受け取り、時には誰かを無視しているということを意味しました!私はそれが接続の問題だと思う、おそらく転送速度を変更するか、または別の接続プロトコルを使用する必要があります! – oudouz

答えて

0

最初に私が変更するのは、ループ内のprintステートメントを取り除くことです。 IOは非常に遅いです。これはもちろん、画面に表示する以外にこれらの値を使って何かをすることを計画していると仮定しています)

+0

申し訳ありません。これは事実ではありません!私はすでにそれを試しました...しかし、面白いものはありません – oudouz

関連する問題