У меня сокет сервер написан на Java, он всегда слушает на конкретном порту. Я написал клиент на Java, и он мог подключиться к серверу, но когда я создал клиент на C #, я не смог подключиться к серверу.
Я просто хочу отправить короткое значение, чтобы запустить сервер Java.
Я полагаю, что проблема связана с порядком байтов (little-endian, big-endian), и у меня есть несколько дней на исследование, но я не могу решить эту проблему.
Я публикую больше информации о моей проблеме
Я использую java.io. * и java.net. *. Мой код Java
out = new ObjectOutputStream (requestSocket.getOutputStream ());
out.flush ();
общедоступная статическая финальная короткая CLIENT = 0;
out.writeShort (КЛИЕНТ);
out.flush ();
и с c # я использую System.Net.Sockets. Мой код C # ниже:
Сокет сокет = новый сокет (AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
...
короткий sClient = 0;
if (BitConverter.IsLittleEndian)
sClient = IPAddress.HostToNetworkOrder (sClient);
NetworkStream ns = новый NetworkStream (сокет);
BinaryWriter bw = новый BinaryWriter (нс);
bw.Write (sClient);
Код Java может подключаться к серверу Java, но код C # не может :(. Ошибка вывода с сервера Java: «Исключение при получении потоков сокетов»
Любой может помочь мне с этой проблемой, заранее спасибо