Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

работа с winsocket

2.0K
19 мая 2003 года
alexora
22 / / 19.05.2003
У меня есть прога, которая должна запускаться в локальной сети. На каждой рабочей станции она присутствует. При том если уже на какой то рабочей станции она запущена, то запуск возможен только тогда когда серийники этих прог(которые могут быть в любом виде: в реестре, в файле) не совпадают.

Одним словом в сети могут одновременно работать больше одной проги, если серийники их не совпадают.

Как это реализовать. (Сервер+Клиент в одном)
3.7K
19 мая 2003 года
dajigin
16 / / 11.05.2003
Ну, если сеть не разбита на подсети маршрутизаторами, посылай 2-3 широковещательных запроса с серийником... Если в сети уже работает прога, пусть она ловит этот запрос и сравнивает полученный серийник со своим. Если совпадает - посылает ответ. Первая прога при получении ответа вываливается. Если ответ не получен - продолжает работать....
2.0K
19 мая 2003 года
alexora
22 / / 19.05.2003
Что ты подразумеваешь под широковещательными запросами ?
Может UDP ?
3.7K
19 мая 2003 года
dajigin
16 / / 11.05.2003
Широковещательные запросы (broadcast) получают все компьютеры. Адрес получателя в них - 255.255.255.255. Вырезано из MSDN. CAsyncSocket::SendTo

SendTo is only used on a SOCK_DGRAM socket to send a datagram to a specific socket identified by the lpSockAddr parameter.

To send a broadcast, on a SOCK_DGRAM only, the address in the lpSockAddr parameter should be constructed using the special IP address INADDR_BROADCAST—defined in the Windows CE Sockets header file Winsock.h—with the intended port number. Or, if the lpszHostAddress parameter is NULL, the socket is configured for broadcast. It is inadvisable for a broadcast datagram to exceed the size at which fragmentation can occur, which implies that the data portion of the datagram, excluding headers, should not exceed 512 bytes.

2.0K
19 мая 2003 года
alexora
22 / / 19.05.2003
Как я понял надо сделать след:
1) Повешать проверку на какой то порт в потоке, к примеру на 9191. И от туда считывать параметры (код,IP)
2) А во втором потоке через клиент сокет отправлять на порт 9191 255.255.255.255 данные с инф. про ip,серийниек. и считывать ответ.

Вопрос : Широковещательным запросом считается тогда запрос, когда в качестве сервера мы указываем 255.255.255.255 ? При этом все лок. узлы получают запрос, которые наход в лок. сети ?

thanx
3.7K
19 мая 2003 года
dajigin
16 / / 11.05.2003
Ну, да...

Обрати внимание, я дополнил свой предыдущий ответ....

Только что сокет должен быть SOCK_DGRAM. Так что, вероятно, проверку придется повесить на другой сокет...
2.0K
19 мая 2003 года
alexora
22 / / 19.05.2003
какая у тя аська ?
3.7K
19 мая 2003 года
dajigin
16 / / 11.05.2003
Никакой....
2.0K
19 мая 2003 года
alexora
22 / / 19.05.2003
а мыло у тя хоть есть ?
какое если есть ?
3.7K
19 мая 2003 года
dajigin
16 / / 11.05.2003
[email]dajigin@mail.ru[/email]
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог