Написал совсем простые программы 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, то выдается ошибка, что порт занят.
Где и как еще искать проблему?