Sto sviluppando un'applicazione, in cui il server c sharp comunica con il client Android. Il server deve inviare più messaggi a Android tcpClient. Per inviare un messaggio devo chiudere l'oggetto tcpClient sul server. altrimenti non spedisce. Una volta chiuso tcpClient, come posso comunicare nuovamente con il mio cliente, come posso tenere traccia e inviare più messaggi, una volta che chiudo tcpClient, o c'è un altro modo di inviarlo senza chiuderlo. Se la domanda è ancora chiaro, si prega di commento qui sottoinvia più messaggi dal server TCP al client (da C sharp a Android)
si invia un messaggio easlity ma ho bisogno di inviare più messaggi di volta in volta
Ecco il frammento di codice per il server
//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();
}
}
}
Quale problema risolverebbe? –
@LB A me sembra che non sia stato in grado di inviare il messaggio senza chiudere il flusso, ma vuole tenerlo aperto: "c'è un modo di inviare senza chiudere ..." quindi l'ho riscritto per scrivere il messaggio, senza chiusura. –
@ 0 _______ 0 non riesco ancora a inviare messaggi, a meno che non lo chiudi tcpclient –