2012-10-13 5 views
7

私はシャープなサーバーがアンドロイドクライアントと通信するアプリを開発しています。 サーバーはAndroid tcpClientに複数のメッセージを送信する必要があります。メッセージを送信するには、サーバー上のtcpClientオブジェクトを閉じる必要があります。それ以外の場合は送信しません。一旦tcpClientが閉じられると、どうやってクライアントと通信することができますか?tcpClientを閉じるか、それを閉じないで他の方法で送信すると、複数のメッセージを追跡して送信できます。 質問はまだ不明である場合は、複数のメッセージをTCPサーバーからクライアントに送信する(Cをシャープにしてください)

の下にコメントしてください、それは1つのメッセージeaslityを送信しますが、私はここで随時

を複数のメッセージを送信する必要があるサーバー

//in a thread 
void receivingMessages(object param) 
    { 
     try 
     { 
      var paramArray = (object[])param; 
      var id = paramArray[0]; 
      var client = paramArray[1] as TcpClient; 

      var stream = client.GetStream(); 

      while (true) 
      { 
       byte[] buffer = new byte[2048]; 
       int bytesRead = stream.Read(buffer, 0, 2048); 

       if (bytesRead > 0) 
       { 
        StringBuilder sb = new StringBuilder(); 
        string v = Encoding.ASCII.GetString(buffer); 

        int index = v.IndexOf('\0'); 
        string trimmedXml = v.TrimEnd(new char[] { '\0' }); 

        var root = XDocument.Parse(trimmedXml).Root; 
        //to get the type of xml like it is login register or message 
        string xmlType = root.Name.ToString(); 

        //some checks  
        string result = " server messages"; 
        SendMessage(client, result); 

       } 

       //Thread.Sleep(10); 
      } 
     } 
     catch (Exception) 
     { 

     } 

    } 


    public void SendMessage(TcpClient client, string message) 
    { 

     byte[] buffer = Encoding.ASCII.GetBytes(message); 

     NetworkStream stream = client.GetStream(); 
     stream.Write(buffer, 0, buffer.Length); 

     client.Close(); 
    } 
} 
} 

答えて

3

ためのコードのスニペットですこれを試してください:

public void SendMessage(TcpClient client, string message) 
{ 

    //byte[] buffer = Encoding.ASCII.GetBytes(message); 

    NetworkStream stream = client.GetStream(); 
    StreamWriter writer = new StreamWriter(stream); 
    writer.WriteLine(message); 
    writer.Flush(); 

} 
+0

これはどの問題を解決しますか? –

+0

@LB彼はストリームを閉じずにメッセージを送ることができなかったように私に聞こえますが、彼はそれを開いたままにしておきたいと思います:「閉じないで送信する方法はありますか?メッセージを閉じずに。 –

+0

@ 0 _______まだメッセージを送信できない場合は、tcpclient –

関連する問題