2012-03-01 13 views
1

GPSを購入しました。これをSMSメッセージでテストし、独自のソフトウェアを使って緯度/経度を検索しました。スクリーンショット: enter image description herea GPS.netから文章を読むときに「java.net.SocketException:Connection reset」

今、私は...私の最初で gprs->internetとの通信は、私はソフトウェアの製造元に存在していない他の機能の多くを行うことができ、私自身のソフトウェアを作成するに動作することを確信しています反射、ポート7070でソケットTCP/IP(Java)のNMEAメッセージを聞こうとしましたが、ここに私のソースコードはあります:

import java.io.*; 
import java.net.*; 


public class Serveur { 
static final int port = 7070; 
    public static void main(String[] args) throws Exception {    

    ServerSocket s = new ServerSocket(port); 
    System.out.println("waiting for connexion from GPS 7070"); 
    Socket socClient = s.accept(); 
    System.out.println("Connexion GPS ok"); 

      BufferedReader in = new BufferedReader(
          new InputStreamReader(socClient.getInputStream()) 
         ); 
      PrintWriter out = new PrintWriter(
         new BufferedWriter(
          new OutputStreamWriter(socClient.getOutputStream())), 
         true); 
    String str = in.readLine(); 

    System.out.println("the GPS message is : " + str);   

    in.close(); 
    out.close(); 

    socClient.close(); 
    } 
    } 

私は、ローカルネットワーク上のJavaクライアントを介してメッセージを送信しようとした、それが動作します。..

しかし、私は理解していない問題がある:私はGPSからのメッセージを受信したとき、私はこれを取得エラー:serveur.Serveur.mainで

waiting for connexion from GPS 7070 
Connexion GPS ok 
Exception in thread "main" java.net.SocketException: Connection reset 
    at java.net.SocketInputStream.read(Unknown Source) 
    at java.net.SocketInputStream.read(Unknown Source) 
    at sun.nio.cs.StreamDecoder.readBytes(Unknown Source) 
    at sun.nio.cs.StreamDecoder.implRead(Unknown Source) 
    at sun.nio.cs.StreamDecoder.read(Unknown Source) 
    at java.io.InputStreamReader.read(Unknown Source) 
    at java.io.BufferedReader.fill(Unknown Source) 
    at java.io.BufferedReader.readLine(Unknown Source) 
    at java.io.BufferedReader.readLine(Unknown Source) 
    at serveur.Serveur.main(Serveur.java:27) 

(Serveur.java:27)

エラーがline String str = in.readLine();

から来ています

そのソフトウェアがメッセージを傍受することができた場合、NMEAなぜ私のアプリケーションですか?

UPDATE:私は、ネットワークを傍受

は、ここでの結果である:

[私のGPSが使用するプロトコル] [4]

は、最初のパケットは、GPSから受信した(the hidden ip adress is my fixed public address ): enter image description here

ソフトウェアからの最初の応答(1/2)(その空のメッセージ):

ソフトから

enter image description here

:GPSから enter image description here

:ソフトウェア(2/2)から

enter image description here

enter image description here

GPSから( 1/2)(空のメッセージ): GPSから

、最後に長い/緯度/スピード...(2/2):私はすでに書かれているよう enter image description here

、GPSによって送信され、空のメッセージは、だからここに...がありますすべての詳細です。

@ Peter Lawrey:私はバイトごとにメッセージを読もうとしましたが、ネットビーンズからエラーが出ました。ありがとう これは私を助けてくれるでしょう。

+0

あなたはGPSがソケットクライアントであることを確認していますか?デバイスがサーバーであると考えるのは理にかなっています。 –

+0

私はよく分かりませんが、通常これはソケットクライアントです... –

+0

デバイスとサーバーは同じマシンにありますか? –

答えて

2

GPSがラインを送信していますか(改行が終了していますか?) (EOFに到達するまで)私が読んで使用していない場合は

は()を繰り返し、それが送信するすべてのデータを取得するために

+0

お返事ありがとうございますが、私はそれが新しい行で終了したことを確認できますか? –

+0

トラフィックをスニッフィングするか、この仮定をせずにすべてのバイトを読み取るだけで、何が得られるかを知ることができます。 –

+0

PeterLawrey:効果的にgpsは改行なしの文字のリストを送信します...解決済み! –

関連する問題