Написал совсем простые программы 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, то выдается ошибка, что порт занят.
Где и как еще искать проблему?
Здравствуйте, Stuw, Вы писали:
S>Здравствуйте, Vasilich2222, Вы писали:
V>>Написал совсем простые программы Sender и Receiver, которые работают на одном компьютере
V>>на обоих компьютерах Windows 7 в Firewall поставил разрешение на все что мог. И на Inbound и Outbound rules. И на 61557(Receiver), 11001 (Sender), и на All UDP порты). Компьютеры находятся на одном switcher и по маске находятся в одном subnet (то есть через router не должны UDP пакеты идти)
V>>Также точно знаю, что receiver забирает порт 61557, так как если запускаю второй экземпляр receiver, то выдается ошибка, что порт занят.
V>>Где и как еще искать проблему?
S>0. проверяй ошибки, возвращаемые функциями (если там не исключения кидаются, конечно)
S>1. выруби вообще файрволы на обоих машинах
S>2. посмотри netstat'ом состояние сокетов
S>3. если не поможет, смотри трафик анализатором (wireshark или подобным)
S>в сетевом коде шарпа не очень силен, потому пока больше советов нет.
спасибо.
все-таки оказался firewall. разрешение по портам и программам в advanced не помогло, а по-простому у меня нету достаточно привилегий. Пришлось уйти в другую сеть, где нету таких ограничений и там уже проверил. Блин, как делать проект, если нужно еще и multicast через кучу рауторов тащить