Решил поставить свою программку для обмена на win7 и сразу возникли проблемы.
Программа работает давно но только на win XP, проблем никогда не возникало.
Сразу скажу проблема не в IPv6 и не в выборе IP адреса из доступного списка. Перекопал Инет там только об этом и идёт песня.
2ноута оба в одной сети на одном win7 на другом ХР, оба подключены через wifi. Использую С# .NET v4. Обмен через Сокеты протокол TCP/IP.
с ХР на 7 пакеты доходят, с 7 на ХР нету обмена. Аналогичная программа с ХР на ХР работает нормально.
Пример кода:
//////////////////////////
/////Передатчик
IPEndPoint ipend = new IPEndPoint(IPAddress.Parse(ServerIp), ServerPort);
clientSocket = new Socket(ServerIp.AddressFamily, SocketType.Stream, ProtocolType.Tcp) {Ttl = 0};
//////////////////////////
////Приемная сторона
ipForMulty = IPAddress.Parse(ServerIP);
var ipend = new IPEndPoint(ipForMulty, ServerPort);
_sock = new Socket(ipend.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
_sock.Bind(ipend);
_sock.Listen(10);
var ss = _sock.Accept();
//////////////////////////
Передаваемая сторона подвисает на clientSocket.Connect(ipend); — потому что не получает разрешения на соединение
Ну а на приемной не приходит обращение
Пробовал:
1) Отключать Firewall и на ХР и на Win7
2) Давать разрешения в настройках сети при включенном Firewall.
3) Отключил антивирусы.
4) включил обнаружение компьютера на 7 в сети(можно и записывать и читать расшаренную инфу), и убрал доступ пользователя по паролям
5) пробовал порты 5000 и 6000
6) отключать и устанавливать ДНС в настройках подключения к wifi сети.....
МЛЯТЬ!!! пока писал сам разобрался!
Короче проблема в настройке сокета на стороне win7 {Ttl = 0}; — даёт проблемы с обменом.