Можт кто знает какой компонент может дать, или как узнать IP компа который находится на другом коце модемного соединения, потомучто как определить свой я знаю.
мне нужно написать мелкую прогу которая при запуске определяла бы IP соединенного с моим компьютера и прописывала его в некоторый config некоторой игры, загвоздка в определении IP.
Вопрос про Ip
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
-
- Сообщения: 230
- Зарегистрирован: 31 авг 2006, 13:11
Я думаю клиент может посылать широковешательный Udp пакет со своим IP и инфой что он клиент.А сервер при получении создает tcp соединение и посылает ответ клиенту по udp. клиент получив ответ сервера(с айпи сервера) содключается к нему по tcp. Возможно я что-то сильно нагородил но идея имхо правильная.
Как послать широковещательный UDP пакет ?
Как послать широковещательный UDP пакет ?
Код: Выделить всё
procedure TMainForm.FormCreate(Sender: TObject);
var
Init: TWSAData;
SockOpt: BOOL;
Sock: TSocket;
Target: TSockAddrIn;
begin
WSAStartup($101,Init);
Sock:=Socket(PF_INET,SOCK_DGRAM,IPPROTO_UDP);
SockOpt:=TRUE;
SetSockOpt(Sock,SOL_SOCKET,SO_BROADCAST, PChar(@SockOpt),SizeOf(SockOpt)) ;
Target.sin_port:=htons(8167); //номер порта
Target.sin_addr.S_addr:=INADDR_BROADCAST;
Target.sa_family:=AF_INET;
SendTo(Sock,Data,DataBytes,0,Target,SizeOf(Target));
WSACleanup;
end;