UDP socket не работает на разных компьютерах
От: Vasilich2222  
Дата: 23.01.12 08:03
Оценка:
Написал совсем простые программы Sender и Receiver, которые работают на одном компьютере

    class SimpleSender  {
        static void Main( string [] args ) {
            try {
                UdpClient udpClientSend = new UdpClient( 11001 );
                //udpClientSend.Connect("127.0.0.1", 61557);
                udpClientSend.Connect( "130.20.228.119", 61557 );//we23210
                for( int i = 0; i < 10; i++ ) {
                    Byte [] sendBytes = Encoding.ASCII.GetBytes( "Test " + i );
                    udpClientSend.Send( sendBytes, sendBytes.Length );
                    Thread.Sleep( 100 );
                }
                udpClientSend.Close();
            } catch( Exception ex ) {
                Console.WriteLine( ex.Message );
            }
        }
    }
//==============================
    class SimpleReceiver {
       static void Main( string [] args ) {
            try {
                UdpClient udpClientRec = new UdpClient( 61557 );
                //IPAddress mcAddress = IPAddress.Parse( "127.0.0.1" );
                IPAddress mcAddress = IPAddress.Parse( "130.20.228.119" );
                IPEndPoint RemoteIpEndPointRec = new IPEndPoint( mcAddress, 61557 );
                //IPEndPoint RemoteIpEndPointRec = new IPEndPoint(IPAddress.Any, 61557);
                //IPEndPoint RemoteIpEndPointRec = new IPEndPoint(IPAddress.Any, 0);
                for( ; ; ) {
                    if( udpClientRec.Available > 0 ) {
                        Byte [] receiveBytesRec = udpClientRec.Receive( ref RemoteIpEndPointRec );
                        string returnDataRec = Encoding.ASCII.GetString( receiveBytesRec );
                        Console.WriteLine( returnDataRec );
                    }
                    Thread.Sleep( 100 );
                }
                udpClientRec.Close();
            } catch( Exception ex ) {
                Console.WriteLine( ex.Message );
            }
        }
    }


на обоих компьютерах Windows 7 в Firewall поставил разрешение на все что мог. И на Inbound и Outbound rules. И на 61557(Receiver), 11001 (Sender), и на All UDP порты). Компьютеры находятся на одном switcher и по маске находятся в одном subnet (то есть через router не должны UDP пакеты идти)
Также точно знаю, что receiver забирает порт 61557, так как если запускаю второй экземпляр receiver, то выдается ошибка, что порт занят.
Где и как еще искать проблему?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.