я создаю приложение чата клиента/сервера с Winsock2 в lazarus.I есть проблемы, чтобы получить IP-адрес от подключенного кода user.My выглядит следующим образом:Как преобразовать psockaddr в sockaddr_in Lazarus?
uses winsock2,windows;
var
wsa : twsadata;
main_sock,client_sock : tsocket;
server : sockaddr_in;
client : psockaddr;
c : integer;
begin
wsastartup(makeword(2,2),wsa);
main_sock := socket(AF_INET,SOCK_STREAM,0);
server.sin_family:=AF_INET;
server.sin_addr.s_addr:=inet_addr('192.168.0.101');
server.sin_port:=htons(8888);
bind(main_sock,server,sizeof(server));
listen(main_sock,3);
while true do
begin
c:=sizeof(sockaddr_in);
client_sock:=accept(main_sock,client,c);
if (client_sock <> invalid_socket) then
begin
writeln('Connection accepted with these properties : ','??????');
send(client_sock,'Hello',10,0); //just to make sure.
end;
end;
end.
Я знаю, что адрес IP пользователя хранится в клиенте (psockaddr), но я не знаю, как их вынуть. Я мог бы это сделать, если это была структура sockaddr_in. Спасибо заранее.
Отлично! Это сработало. – Ramtin