Анонсы:
|
SocketЧто вам необходимо для подключения... Ну вопервых ИП-адрес того компьютера к которуму вы хотите подключится. Во вторых порт приложения с которым вы хотите общаться. Дальше вам нужно создать Socket. Socket это розетка, для подключения к различным протоколам. Вообще говоря, это все можно сделать и стандартными компонентами, не вдаваясь в подробности программирования. Но это для слабаков, для юзеров и ламеров... Ведь вы не такой? Ведь при виде ваших программ бледнеют юзеры, слетают сервера и трясутся горы... И вы должны писать такие программы чтобы даже сишники с полуторамегабайтовыми MFC библиотеками содрогнулись при виде 30 килобайтного клиента или 20 килобайтного сервера нестандартного IWCP (internet women chat protocol) порта :-) Все необходимое для работы с WinSock находится в модуле Winsock. Итак, создание сокета... объяснять работу тех или иных АПИ функций я не буду, они есть в хелпе... function socketcreate:integer; var d:TWSAData; begin //инициализирую WinSock версии 0101. wsastartup($0101,d); result:=socket(AF_INET, SOCK_STREAM,0); end; Теперь нам нужно подключится к хосту, нетак-ли? H-строка с именем хоста(www.chat.ru например) P-порт сервиса а S-сокет созданный ранее. procedure connecttohost(h:string;p:word;s:integer); var r_h:PHostEnt; rh:THostEnt; al:PChar; sa:TSockaddrin; begin r_h:=nil; r_h:=gethostbyname(pchar(edit1.text)); if r_h=nil then exit; if r_h<>nil then rh:=r_h^; al:=rh.h_addr_list^; zeromemory(@sa,sizeof(sa)); copymemory(@sa.sin_addr,al,rh.h_length); sa.sin_family:=af_inet; sa.sin_port:=p; connect(nsd,sa,j); end; Теперь нужно послать информацию хосту D-строка для передачи, при необходимости переделать под любой дугой тип. S-ранее созданный сокет. procedure sendingdata(d:string;s:integer); begin send(s,d,length(d),msg_oob); end; Ну, и принять ответ D-строка для приeма, обязаня иметь длинну. procedure receivingdata(var d:string;s:integer); begin recv(s,d,length(d),0); end; " |
Погода в Рудне на 10 Дек 2024 г. 704 - Вьетнамских донгов - 1 |