Intereting Posts
Emulator-x86.exe перестает работать Не удалось получить неизвестное свойство «компилировать» для объекта типа org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler Нужна попытка взять изображение с помощью MonoDroid и MVVMCross Как постоянно активный Интернет в режиме доз Зефир и Нуга RxJava не может быть завершен, как избежать toBlocking () Android Studio + Volley Как изменить динамическую работу запуска? SimpleDateFormat возвращает 24-часовую дату: как получить 12-часовую дату? Невозможно обновить текст фрагментов при обмене картами Обои ImageView внутри пользовательского представления не отображаются на некоторых устройствах Ошибка – android.database.CursorIndexOutOfBoundsException: запрашивается индекс 0 с размером 0 Android: рисунок на новом холсте Нежелательный эффект Warp для рисования текста на пути к андроиду Есть ли способ контролировать представления в заголовке NavigationView? Круглые формы кнопки искажаются с длиной текста внутри.

Отправлять несколько сообщений с сервера TCP на клиент (C sharp для Android)

Я разрабатываю приложение, в котором острый сервер взаимодействует с клиентом android. Серверу необходимо отправить несколько сообщений на Android tcpClient. Что касается отправки сообщения, я должен закрыть объект tcpClient на сервере. В противном случае он не отправляет. Как только tcpClient закрывается, как я могу снова связаться с моим клиентом, как я могу отслеживать и отправлять несколько сообщений, как только я закрываю tcpClient, или есть другой способ отправки, не закрывая его. Если вопрос остается неясным, прокомментируйте ниже

Он отправляет одно сообщение 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(); } } } 

Попробуй это:

 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(); }