Flowcode передает UDP, но безуспешно читается сервером - PullRequest
1 голос
/ 08 февраля 2012

Я использую технологию Flowcode для программирования микроконтроллера 16F877A.

из потока кода Я отправляю 3-байтовые UDP-пакеты на сервер, прослушивающий порт 23456.

проблема в том, чтосервер никогда не получает эти пакеты.я использовал wireshark для трассировки, и он смог обнаружить 3 байта и их содержимое.

ниже приведен код моего сервера с использованием c #

const int port_number=23456;
TcpListener server=new TcpListener( IPAddress.Any ,port_number);
Socket soc;
NetworkStream s; 
bool exit=false; 
Thread mythread;

код потока здесь

void method()
    {
        try
        {
            server.Start();
            soc = server.AcceptSocket();
            s = new NetworkStream(soc);
            StreamReader sr = new StreamReader(s);
            textBox1.Text += sr.ReadLine();
            if(soc.Connected==true && exit==false)
            method();                   
        }
        catch(Exception es)
        {
            Console.WriteLine("{0}",es.Message);
        }

    }

Как вы думаете, мне нужно что-то изменить, чтобы прочитать эти 3 байта и обработать их?

Я очень ценю вашу помощь.

1 Ответ

2 голосов
/ 08 февраля 2012

Вы используете TcpListening, но отправляете UDP-пакеты?Попробуйте класс UDPClient: http://msdn.microsoft.com/en-us/library/system.net.sockets.udpclient.aspx

Редактировать Чтобы немного прояснить ситуацию.Клиент TCP никогда не получит пакеты UDP, поскольку TCP и UDP - два отдельных протокола на уровне сокетов.Сокет увидит, что вы прослушиваете TCP-соединение, он получит UDP-датаграмму, не увидит прослушивателей и выбросит его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...