2012-06-16 1 views
0

я пытаюсь связать игру Unity с сервером Java с использованием C#StreamWriter.Flush(); не смоет

когда сервер Java вверх единственным способом я могу отправить данные является закрытие StreamWriter (OUT.Close();), которая на самом деле закрывает соединение. поэтому я могу только отправлять данные. или, каждый раз, когда я хочу отправить сообщение, мне нужно снова подключиться к серверу.

, когда я просто использую Flush(), данные не будут отправляться на сервер. Код:

NetworkStream STREAM = connection.GetStream(); 
StreamWriter OUT = new StreamWriter(STREAM); 
OUT.Write(text); 
OUT.Flush() 

это мое чтение код:

BufferedReader input = new BufferedReader(new InputStreamReader(client.getInputStream())); 
String inputstring = input.readLine(); 
+2

Я подозреваю, что ошибка находится в вашем коде чтения, а не в коде написания. Дикая догадка заключается в том, что вы не рассматриваете поток, который вы читаете как поток, и ожидаете пакеты. – CodesInChaos

+0

это мой код чтения BufferedReader input = new BufferedReader (новый InputStreamReader (client.getInputStream())); \t \t \t \t \t \t Строка inputstring = input.readLine(); – MrDisco

ответ

1

Вы пишете текст без разделителя строк с Write и читать с ReadLine, так что это не совпадает. В отсутствие разделителей строк ReadLine читает до конца потока, что объясняет, почему вам нужно закрыть поток. Заменить Write на WriteLine.

+0

СПАСИБО ВАС !!!!!! : D! это действительно расстроило меня, потому что независимо от того, как я подошел к этой проблеме, она никогда не исчезала. я могу, наконец, двигаться дальше! : D – MrDisco