Форум: "Сети";
Текущий архив: 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