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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как создать netbios socket 
:(
    Опции темы
Gleb
Дата 23.4.2008, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 11.6.2005

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



Есть задание сделать приложение работающее на netbios-сокетах. КАК это сделать, не имею малейшего понятия.

Есть код на С
Код

NBSocket = socket(AF_NETBIOS , SOCK_SEQPACKET ,-4);
memset(&NB_OurAddress, 0, sizeof(NB_OurAddress));
NB_OurAddress.snb_family= AF_NETBIOS;
NB_OurAddress.snb_type=NETBIOS_UNIQUE_NAME;
strcpy(NB_OurAddress.snb_name,"Name");
bind(NBSocket, (LPSOCKADDR)&NB_OurAddress, sizeof(sockaddr_nb);


Похоже на создание tcp-порта в NET:
Код

IPEndPoint localEnd = new IPEndPoint(IPAddress.Any, port);
sListener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
sListener.Bind(localEnd);


Меняю AddressFamily, SocketType и ProtocolType:
Код

sListener = new Socket(AddressFamily.NetBios, SocketType.Seqpacket, ProtocolType.Unspecified);


А что делать с IPEndPoint, не знаю ( Возможно я вовсе иду неправильным путем, но в сети очень мало информации по работе с Netbios в .NET
Заранее благодарен.
PM MAIL   Вверх
Gleb
Дата 25.4.2008, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 11.6.2005

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



Ну хоть какие-нибудь мысли по этому поводу имеются? Куда копать, что искать? Время идет, а проект стоит (
PM MAIL   Вверх
mr.DUDA
Дата 25.4.2008, 18:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Вариант - переписать код С++ на шарпе с использованием вызовов API. 

pinvoke.net в помощь.

Хотя по идее, если сокет создан, можно подключиться и работать. В мсдн примеры есть.


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


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 11.6.2005

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



Переписывать на API - это конечно вариант, но самый-самый последний )

А в мсдн примеры только по AddressFamily.InterNetwork, в сети сегодня откопал примеры работы с Irda, но там вместо IPEndPoint используется IREndPoint, в остальном все то же.

Код

IPEndPoint localEnd = new IPEndPoint(IPAddress.Any, 8000);
sListener = new Socket(AddressFamily.NetBios, SocketType.Seqpacket, ProtocolType.Unspecified);
sListener.Bind(localEnd);


выдает исключение "Система обнаружила недопустимый указатель адреса при попытке использовать в вызове аргумент указателя"
PM MAIL   Вверх
mr.DUDA
Дата 25.4.2008, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Сорри, помочь не могу т.к. сабжем не владею, можно попробовать на rsdn.ru или codeproject.com примеров поискать...  smile 


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

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

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

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


 




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


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

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