7
我正在开发的应用程序,其中c尖锐服务器与Android客户端进行通信。 服务器需要向Android tcpClient发送多条消息。至于发送消息,我必须关闭服务器上的tcpClient对象。否则它不会发送。一旦tcpClient被关闭,我怎么能再次与我的客户端通信,我如何跟踪和发送多个消息,一旦我关闭tcpClient,或者有任何其他方式发送而不关闭它。 如果问题仍不清楚,请在下方发送多条消息从TCP服务器到客户端(C尖锐到Android)
它发送一个消息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 _______ 0仍然无法发送消息,除非我关闭它tcpclient –