Просмотр полной версии : Чуть не понятно о winsock на делфи
Мне в нем не понятно 2 вещи это:
1-Как подключиться к хосту с помощью WinSock?
Сначало без if'a можно? Или через if не возможно коннект установить? (да я знаю что if проверяет но многие пишут проверку а в итоге перед проверкой не стоит коннект с WinSock!)
2-Как проверить что не удалось подкл к хосту?
1-Как подключиться к хосту с помощью WinSock?
Заполни sockaddr структуру и коннектись к хосту(это для POSIX сокетов хотя в wsa тоже самое, они на этих стандартах и построены)
2-Как проверить что не удалось подкл к хосту?
смотри что connect() вернет
П.С. документации в инете море мог и не спрашивать, все довольно хорошо написано))
razb без примеров я твои слова не могу разжувать
Hellsp@wn
02.04.2009, 17:32
у тебя в голове каша, читай:
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1021
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1060
Hellsp@wn спасибо огромное!
почитаю обязательно
diznt я же говорил инфи предостаточно)
блин, на самом ачате сотни тем в которых перетералось это.
var
buf:array[0..1023] of char;
WSData:TWSAData;
so:thandle; // дескриптор сокета
ca:sockaddr_in; // для настройки коннекта
begin
write(' WSAStartup...');
if WSAStartup($101, WSData)=-1 then // делаем инит сокетов
begin
write('ERROR');
exit;
end;
writeln('OK');
write(' Create Socket...');
so:=socket(AF_INET, SOCK_STREAM, 0); // содаем сокет
if so=-1 then
begin
writeln('ERROR');
exit;
end;
writeln('OK');
ca.sin_family:=AF_INET;
ca.sin_port:=htons(80); // тут задаем порт
ca.sin_addr.s_addr:=inet_addr('127.0.0.1'); // тут задаем IP адрес. Доменные имена незя, нуна резолвить
write(' Connect to server...');
if connect(so,ca,sizeof(ca))=-1 then // коннектимся
begin // если нет коннекта
closesocket(so); // закрываем сокет
writeln('ERROR');
exit;
end;
writeln('OK');
send(so,buf,sizeof(buf),0); // пишем данные
recv(so,buf,sizeof(buf),0); // читаем данные
closehandle(so); // закрываем сокет
Примерно так всё выглядит )
блин, на самом ачате сотни тем в которых перетералось это.
var
buf:array[0..1023] of char;
WSData:TWSAData;
...
Примерно так всё выглядит )
Это не катит, там If-ы есть :D
2 Algol
Про cmp никто не говорил :-P
ret:=connect(...);
asm
cmp ret,0ffffffffh
jne @@next1
ret
@@next1:
end;
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot