Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2003.08.28;
Скачать: [xml.tar.bz2];

Вниз

Как найти всех доступных клиентов?   Найти похожие ветки 

 
BillyJeans   (2003-06-19 10:40) [0]

Написал клиентские модули, которые принимают строку символов. А в модуле админа, хочу опросить всех доступных клиентов, делаю это так:

s := socket(AF_INET, SOCK_STREAM, 0);
sa.sin_family := AF_INET;
sa.sin_port := htons(13);
for i := sADDR to eADDR do begin
sa.sin_addr.S_addr := htonl(i);
if connect(s, sa, sizeof(sa)) = 0 then Send(s, buf, 20, 0);
еnd;

Но проблема в том, что находится только первый клиент, игнорируя остальные :(
Подскажите пожалуйста, что делаю не так?


 
Digitman   (2003-06-19 12:34) [1]

s := INVALID_SOCKET;
sa.sin_family := AF_INET;
sa.sin_port := htons(13);
for i := sADDR to eADDR do begin
if s = INVALID_SOCKET then
s := socket(AF_INET, SOCK_STREAM, 0);
sa.sin_addr.S_addr := htonl(i);
if connect(s, sa, sizeof(sa)) = 0 then
begin
Send(s, buf, 20, 0);
CloseSocket(s);
s := INVALID_SOCKET;
( s) s := INVALID_SOCKET;
sa.sin_family := AF_INET;
sa.sin_port := htons(13);
for i := sADDR to eADDR do begin
if s = INVALID_SOCKET then
s := socket(AF_INET, SOCK_STREAM, 0);
sa.sin_addr.S_addr := htonl(i);
if connect(s, sa, sizeof(sa)) = 0 then
begin
Send(s, buf, 20, 0);
CloseSocket(s);
s := INVALID_SOCKET;
end;
еnd;
if s <> INVALID_SOCKET then
CloseSocket(s);


 
BillyJeans   (2003-06-20 08:12) [2]

А что такое INVALID_SOCKET? Может быть SOCKET_ERROR?
и можно ли данную операцию реализовать через BROADCAST (протокол TCP)?


 
Digitman   (2003-06-20 09:09) [3]


> А что такое INVALID_SOCKET? Может быть SOCKET_ERROR?


почему это SOCKET_ERROR ?
разве я при присвоении переменной s значения INVALID_SOCKET какую-то winsock-ф-цию выполняю ?
константа INVALID_SOCKET, заносимая в s, показывает, что с этого момента переменная s не содержит значения хэндла существующего гнезда


 
BillyJeans   (2003-06-20 10:46) [4]

Просто моя дельфя не понимает, что такое INVALID_SOCKET :(


 
Digitman   (2003-06-20 11:29) [5]

да ведь чушь ты городишь !

модуль Winsock.pas (не думаю, что ты его не используешь), строка 353, текст :

{$EXTERNALSYM INVALID_SOCKET ( NOT(0) да ведь чушь ты городишь !

модуль Winsock.pas (не думаю, что ты его не используешь), строка 353, текст :

{$EXTERNALSYM INVALID_SOCKET =}
INVALID_SOCKET = TSocket(NOT(0));
{$EXTERNALSYM SOCKET_ERROR =}
SOCKET_ERROR = -1;



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2003.08.28;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.009 c
3-92076
mikhasenko.anton
2003-08-01 07:23
2003.08.28
ADO. Подскажите пжлста как можно запаковать DBF через ADO?


4-92296
tiam
2003-06-26 08:12
2003.08.28
Состояние чужого процесса


4-92299
Ян
2003-06-26 11:56
2003.08.28
как имитировать хоткей в меню


3-92083
Sedunov Vitaly
2003-08-01 13:39
2003.08.28
ADODataSet и eoAsyncFetchNonBlocking


3-92028
Alex_***
2003-08-04 14:33
2003.08.28
Извещение сервером клиента





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский