0

だから私はクライアント<->サーバー接続をセットアップしようとしています。クライアントとサーバーが接続せず、呼び出し時に「cpc」を1回しか送信しないため、最も厄介なエラーが発生し続けます

print("cpc");

これは私が使用しているコードです。これは Thread を拡張するクラスに含まれています。

BufferedReader in = null;
out = new PrintWriter(socket.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String inputLine, outputLine;
print("cpc");
try{
    while ((inputLine = in.readLine()) != null) {
        outputLine = process(inputLine);
        if (!outputLine.equals("")){
            print(outputLine);
        }

    }
} catch (Exception e){
    e.printStackTrace();
}

「while ((inputLine = in.readLine()) != null) {」の場所にエラーがあります。

必要な場合は、ここにエラーがあります。

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 javaclient.Client.run(Client.java:28)

ここに print() コードがあります

public void print(String s){
    out.println(s);
}
4

1 に答える 1

0

あなたは行を読んでいますが、行を送っていません。print()の代わりにprintln()を試してください。 「接続リセット」の最も一般的な原因は、ピアによってすでに閉じられている接続に書き込んだことです。通常、その書き込みではなく、後続の読み取りまたは書き込みで取得します。基本的にはアプリケーションプロトコルエラーです。

于 2012-12-09T19:52:40.503 に答える