Сервер сокетов C # не получает от клиента - PullRequest
1 голос
/ 18 мая 2011

У меня странный вопрос. Я пытаюсь написать C # сервер - клиентский проект, используя сокеты для связи. Я новичок в C #, но я написал тот же проект на Java, и он прекрасно работал там.

Итак, клиент подключается к серверу, создает потоки чтения / записи из сетевого потока сокета и отправляет через него одну строку, но сервер ничего не получает.

Я уверен, что сервер работает нормально, потому что я подключил к нему клиент Java и он получает строку от клиента.

Я не понимаю, как происходит подключение сокета, но через него ничего не проходит.

Вот код клиента:

...
socket = new TcpClient("localhost", PORT);
NetworkStream ns = socket.GetStream();
StreamReader rin = new StreamReader(ns);
StreamWriter wout = new StreamWriter(ns);
Console.WriteLine("-->Connected to server");
string msg;
for (; ; )
{
    Console.WriteLine("waiting to write");
    while(user.Equals("")) //user is set in Form thread working in parallel 
        System.Threading.Thread.Sleep(100);
    Console.WriteLine("sending: " + user);
    wout.WriteLine(user);
    wout.Flush();
    Console.WriteLine("SENT");
    ...

PORT такой же, исключений не выдается (у меня есть попытка - обойти это), клиент отправляет строку через StreamWriter, потому что он выводит «SENT», но сервер ожидает на принимающей стороне (streamReader. ReadLine ()) и ничего не происходит ...

1 Ответ

0 голосов
/ 22 сентября 2014

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

socket = new TcpClient();
socket.Connect("localhost", PORT);
//... Your code continues here
...