2016-12-29 40 views
-2

C#クライアント。 C#クライアントからJavaサーバーにデータを送信する

私はポストhereと同様の問題を抱えていますが、すべての答えに従っていますが、応答として空の文字列があります。 データ。右のメッセージを送信した後、応答を受信する前に

接続を切断:

try 
{ 
    string ENDOFLINE = "\r\n"; 
    TcpClient client = new TcpClient(txtIP.Text, Int32.Parse(txtPort.Text)); 
    NetworkStream stream = client.GetStream(); 

    byte[] data = Encoding.ASCII.GetBytes(txtMessage.Text + ENDOFLINE); 
    stream.Write(data, 0, data.Length); 

    String responseData = String.Empty; 
    Int32 bytes = stream.Read(data, 0, data.Length); 
    responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes); 
    Console.WriteLine("Received: {0}", responseData); 
    stream.Close(); 
    client.Close(); 
} 
catch(Exception ex) 
{ 
    Console.WriteLine(ex.message); 
} 

ソリューション:
はここに私のコードです。私はこれに続きましたarticle

+2

外部リンクではなく、質問自体に常にコードを投稿してください。リンクが消滅しても質問は役に立たなくなりません。 –

+0

@PeterB、あなたの助言をありがとう、私は投稿を編集しました:) – budiantoip

+0

バイト配列をC#からJavaおよびVVに送信できません。Javaはsbyteバイトではありません...あなたは変更する必要があります byte [] data = Encoding.ASCII .GetBytes(txtMessage.Text + ENDOFLINE); – Alrehamy

答えて

2

あなたのコードはうまく動作しますが、サーバー側が協力している場合に限ります。

私は少し変更され、実行の実装にChristian Tuckerから単純なJavaサーバーの実装を持つことによってそれをテストした:私はあなたと同じ結果を得たことのOutputStreamWriterにflushを呼び出すことなく

public void run() 
{ 
    while(isRunning) 
    { 
     try 
     { 
      clientSocket = serverSocket.accept(); 
      System.out.println("Client Connected from " + clientSocket.getInetAddress().getHostAddress() + ":" + clientSocket.getPort()); 
      recv = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); 
      System.out.println("Data Recieved: " + recv.readLine()); 

      // make sure to send something back ... 
      OutputStreamWriter wr = new OutputStreamWriter(clientSocket.getOutputStream()); 
      wr.write("FuBar!\r\n"); 
      // and flush! 
      wr.flush(); 

      clientSocket.close(); 
     } 
     catch (IOException e) 
     { 
      e.printStackTrace(); 
     } 
    } 
} 

:データが正常に送信得たが、受け取りました空の応答。

この場合、デバッガで両端を実行するのに役立ちます。

+0

興味深いことに、私はサーバー側を開発した人物をチェックします。うまくいけば、これは私の問題を解決するでしょう。私は一度それが確認されたらあなたの解決策を受け入れるでしょう。ご協力いただきありがとうございます。 – budiantoip

+0

こんにちは、あなたの助けに感謝、私は最終的に正しい解決策を見つけた:) – budiantoip

関連する問題