Code: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Label1: TLabel; Edit1: TEdit; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin ShowMessage('Привет, ' + Edit1.Text + '!'); end; end. Допотопные коды. С учебника.
Adekvatnyj попробуй переустановить делфи или поставть Codegear какой нить, скорее всего проблемы в среде
Так какая именно ошибка(ки) вылетают? В студию. Или если ты скопировал весь код, то возможно такое. Попробуй просто создать новый проект, кинуть на форму кнопку, а уже в ее обработчике написать строчку кода.
_http://i004.radikal.ru/0911/83/d990ff8ed0f6.png Да вот же скрин. При кнопке, где я в OnClick вписываю Button1Click , и вставляю этот код.
Не конекта Не подключаеться к серверу: Code: unit Unit2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs,winsock, StdCtrls; type TForm2 = class(TForm) Memo1: TMemo; Button1: TButton; Edit1: TEdit; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; const WM_MYSOCKMESS = WM_USER+1; var Form2: TForm2; info:wsadata; addr:tsockaddr; a:tsocket; implementation {$R *.dfm} procedure TForm2.Button1Click(Sender: TObject); begin addr.sin_family:=af_inet; addr.sin_port:=htons(80); addr.sin_addr.S_addr:=inet_addr(pansichar(edit1.text)); a:=socket(af_inet,sock_stream,0); if a=INVALID_SOCKET then begin memo1.Lines.Add('Ошибка 1 '+ (inttostr(WSAGetLastError))); end; connect(a,addr,sizeof(addr)); if connect(a,addr,sizeof(addr))= 0 then begin memo1.Lines.Add('ок'); end else begin memo1.Lines.Add('Ошибка 2'); end end; procedure TForm2.FormCreate(Sender: TObject); begin wsastartup($101,info); end; end.
Зачем ты два раза подключаешься? Или ты думаешь, что во втором случае функция не выполняется? И да, как сказал wolmer функция inet_addr() принимает ip, а не хост.
Собствено следуюший вопрос.. При конекте к серву, сервер посылает нам пакет. Как получить и прочитать его? Используя Winsock
К примеру Code: t:TSocket; send1:string; send1buf:array [0..5000] of char; recv1buf:array [0..5000] of char; dsize:Word; recvstr:string; Code: send1:='GET http://site.ru/'+#13#10+ 'User-Agent: Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.2.15 Version/10.00'+#13#10+ 'Host: site.ru'+#13#10+ 'Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1'+#13#10+ 'Accept-Language: ru-RU,ru;q=0.9,en;q=0.8'+#13#10+ 'Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1'+#13#10+ 'Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0'+#13#10+ 'Cookie: test=test1'+#13#10+ 'Cookie2: $Version=1'+#13#10+ 'Connection: Keep-Alive'+#13#10+#13#10; CopyMemory(@send1buf,pchar(send1),length(send1)); send(t,send1buf,sizeof(send1buf),0); //В случае если мы напишем recv(t, recv1buf, 4096, 0); //То весь пакет не дойдет, поэтому мы связываемся с циклом repeat recv1buf:=''; dSize:=recv(t, recv1buf, 4096, 0); recvstr:=recvstr+recv1buf; until (dSize = 0) or (dSize = SOCKET_ERROR); Дальше в recvstr будет пакет в виде html (#13#10 - перенос строки) (при коннекте сервер нам дает знать что мы подключились но он нам не посылает пакет, он нам посылает пакет когда мы ему послали пакет (т.е. сервер отвечает на наши пакеты)) (писал прямо здесь, так что особо не ругаться на ошибки)
У меня "особенный сервер)" игры Lineage.И при конекте к серверу он сразу же посылат пакет.. Конект и просмотр этого пакета через TCPClient у меня получаться а в вот через Winsock не получалось.. Я получал Длину пакета. Но взяв из вашего примера : Code: recv1buf:=''; recvstr:=recvstr+recv1buf; Начал получать пакет целиком Спасибо=)
Подскажите у меня проблема, ее я постил 2 страницы назад, но мне не помогли. Скачал 3 разных пакета дельфи 7.0, переустанавливал каждую по 3 раза. Дальше та же ошибка, скрин: _http://s39.radikal.ru/i086/0911/c7/26f9f43cdf97.png Винду переустановить не могу, так как бухгалтерии всякие.