Мне в нем не понятно 2 вещи это: 1-Как подключиться к хосту с помощью WinSock? Сначало без if'a можно? Или через if не возможно коннект установить? (да я знаю что if проверяет но многие пишут проверку а в итоге перед проверкой не стоит коннект с WinSock!) 2-Как проверить что не удалось подкл к хосту?
Заполни sockaddr структуру и коннектись к хосту(это для POSIX сокетов хотя в wsa тоже самое, они на этих стандартах и построены) смотри что connect() вернет П.С. документации в инете море мог и не спрашивать, все довольно хорошо написано))
у тебя в голове каша, читай: http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1021 http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1060
блин, на самом ачате сотни тем в которых перетералось это. Code: 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); // закрываем сокет Примерно так всё выглядит )
2 Algol Про cmp никто не говорил ret:=connect(...); asm cmp ret,0ffffffffh jne @@next1 ret @@next1: end;