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();
}
}
}
これはどの問題を解決しますか? –
@LB彼はストリームを閉じずにメッセージを送ることができなかったように私に聞こえますが、彼はそれを開いたままにしておきたいと思います:「閉じないで送信する方法はありますか?メッセージを閉じずに。 –
@ 0 _______まだメッセージを送信できない場合は、tcpclient –