1

私は GPS を購入し、SMS メッセージと緯度/経度を取得する独自のソフトウェアでこれをテストしましたが、正常に動作します。スクリーンショットを参照してください。 ここに画像の説明を入力

との通信が機能することを確信してgprs->internetいるので、ソフトウェアメーカーには存在しない他の多くの機能を実行できる独自のソフトウェアを作成したいと思います..最初の反省では、ソケットでNMEA メッセージをリッスンしようとしました.ポート 7070 の tcp/ip (Java) 、ここに私のソースコードがあります:

 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 からメッセージを受信すると、次のエラーが表示されます。

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)

server.Serveur.main(Serveur.java:27) で

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

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

アップデート:

ネットワークをスニッフィングしました。結果は次のとおりです。

[私の GPS で使用されるプロトコル][4]

GPS から受信した最初のパケット ( the hidden ip adress is my fixed public address): ここに画像の説明を入力

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

ここに画像の説明を入力

ソフトウェアから(2/2): ここに画像の説明を入力

GPS から:

ここに画像の説明を入力

ソフト より: ここに画像の説明を入力

GPS(1/2) から (空のメッセージ): ここに画像の説明を入力

そして最後に、経度/緯度/速度... GPSから(2/2): ここに画像の説明を入力

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

@Peter Lawrey :メッセージをバイト単位で読み取ろうとしたのですが、netbeans からエラーが発生しました。コードを教えてください。ありがとうこれが私を助けてくれることを願っています。

4

1 に答える 1

2

GPS が行を送信していることは確かですか (新しい行で終了します)?

そうでない場合は、 read() を繰り返し使用して、送信するすべてのデータを取得します(EOFに達するまで)

于 2012-03-01T12:05:23.957 に答える