Страница 1 из 1
При опредилении IP подключившегося выскакивает ошибка
Добавлено: 26 май 2004, 16:16
DStorm
Код такой
ListBox1.Items.Add(ServerSocket1.Socket.RemoteAddress);
При опредилении выскакивает ошибка, как это исправить???
Добавлено: 26 май 2004, 17:41
AiK
DStorm, ты бы хоть ошибку привёл. А то как обычно - доктор, у меня ЭТО.
Добавлено: 26 май 2004, 18:49
DStorm
Windows socket error: Запрос на отправку или получение данных (when sending ona datagram socket using a sendto call)no adress was supplied (10057), on API 'getpeername'
Добавлено: 26 май 2004, 22:43
Naeel Maqsudov
ИМХО
ServerSocket1.Socket.Connections.RemoteAddress
Так как к серверу подключаются от (0) до (ServerSocket1.Socket.ActiveConnections) клиентов, и у каждого свой IP.
Добавлено: 27 май 2004, 09:24
DStorm
Я переписал код так:
ListBox1.Items.Add(ServerSocket1.Socket.Connections[ServerSocket1.Socket.ActiveConnections].RemoteAddress)
но теперь он стал выдавать следущее:
List index out of bounds (1)
Добавлено: 27 май 2004, 23:16
Naeel Maqsudov
Неправильно.
Например, ActiveConnections=1, значит в Connections есть один элемент под номером 0.
Правильно примерно так:
Код: Выделить всё
with ListBox1.Items, ServerSocket1.Socket do begin
if ActveConnections>0 then Add(Connections[Pred(ActveConnections)].RemoteAddress);
//Т.е. если ActveConnection-ы вообще есть, то добавляем адрес последнего Connection-а
end;
А вообще-то это надо делать на OnClientConnect, особенно, если клиентов будет много. Там один из аргументов как раз i-ый CustomWinSocket.
Добавлено: 28 май 2004, 18:19
DStorm
Спасибо!