Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> socket под Vista 
:(
    Опции темы
retto
Дата 29.1.2008, 23:06 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 167
Регистрация: 30.10.2007
Где: Кривой Рог, Украи на

Репутация: нет
Всего: нет



вобщем есть сокет который отправляет текстовые сообщения. Соответственно другой принимает. Под ХР все работает. Под вистой начинаются сюрпризы, выдает ошибку что не может подкл тоесть как комп отверг запрос на подключение. Все дело в том что он как ни крути "хочет думать" что у меня 6-байтовый IP (на самом деле это не так). Убрал я этот 6-байтовый протокол, но это как оказалось ему до-лампочки. И он упорно продолжает биться в 6-байтовый протокол. Может есть какието способы обойти эту заразу?

З.Ы. Visual Studio 2005 (.Net framework 2.0)
PM MAIL   Вверх
mr.DUDA
Дата 30.1.2008, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 2
Всего: 232



Пример кода не помешал бы.


--------------------
user posted image
PM MAIL WWW   Вверх
0000
Дата 30.1.2008, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 11.7.2006
Где: Нижний Новгород

Репутация: 1
Всего: 5



под 2005 студию сервис пак ставил??
у нас на работе стоит на одном компе 2005 студия с вистой...так периодически вылетают абсолютно непонятные ексепшены типа NullReference, когда все ссылки определены и в дебагере можно их спокойно просмотреть...
дай код, проверим его в 2008 студии
PM MAIL ICQ   Вверх
retto
Дата 30.1.2008, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 167
Регистрация: 30.10.2007
Где: Кривой Рог, Украи на

Репутация: нет
Всего: нет



Код

 public void s(int port)
            {
                IPHostEntry localMachineInfo =
                   Dns.GetHostEntry("192.168.1.6");
                IPEndPoint myEndpoint = new IPEndPoint(
                   localMachineInfo.AddressList[0], port);

                byte[] buffer1 = Encoding.Unicode.GetBytes(Dns.GetHostName() + " (" + DateTime.Now.ToLongTimeString() + ")" + "\n" + rSend.Text + "\n" + "\n");
                rC.AppendText(Encoding.Unicode.GetString(buffer1));
                rSend.Clear();

                _serverSocket = new Socket(
                   myEndpoint.Address.AddressFamily,
                   SocketType.Stream, ProtocolType.Tcp);
                _serverSocket.Connect(myEndpoint);
                _serverSocket.Send(buffer1);
                _serverSocket.Shutdown(SocketShutdown.Both);
                _serverSocket.Close();
            }



ругается при _serverSocket.Connect(myEndpoint);
PM MAIL   Вверх
mr.DUDA
Дата 30.1.2008, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 2
Всего: 232



Неплохо было бы проверить, что там передаётся в AddressList[0] при создании myEndPoint. Скорее всего там айпишник в формате IpV6.


--------------------
user posted image
PM MAIL WWW   Вверх
retto
Дата 30.1.2008, 23:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 167
Регистрация: 30.10.2007
Где: Кривой Рог, Украи на

Репутация: нет
Всего: нет



Цитата(mr.DUDA @  30.1.2008,  17:00 Найти цитируемый пост)
Скорее всего там айпишник в формате IpV6.

так оно и есть: networkInterfaceIPv6. А как его заставить "понять" что надо для нормально доброго старого айпи  создать AddressList[0]?

PM MAIL   Вверх
mr.DUDA
Дата 31.1.2008, 10:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 2
Всего: 232



Можно руками создать IPAddress из массива байт длиной 4, и передать в конструктор IPEndPoint.


--------------------
user posted image
PM MAIL WWW   Вверх
0000
Дата 1.2.2008, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 11.7.2006
Где: Нижний Новгород

Репутация: 1
Всего: 5



Можно ведь явно указать (в случае чего можно сделать условную компиляцию)

Код

_serverSocket = new Socket(AddressFamily.InterNetwork,SocketType.Stream, ProtocolType.Tcp);

PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
cully
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, cully, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Распределённые приложения и сеть | Следующая тема »


 




[ Время генерации скрипта: 0.3284 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.