请教:
服务器端:
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ScktComp;type
TForm1 = class(TForm)
ServerSocket1: TServerSocket;
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
begin
ServerSocket1.Open;
end;procedure TForm1.Button1Click(Sender: TObject);
var
filename:string; //ini 文件路径
mystream: TMemoryStream; //流
buffer : array of byte;
len:longint;
begin
filename:=ExtractFilePath(paramstr(0))+'014.bmp';
mystream := TMemoryStream.Create;
mystream.LoadFromFile(filename);
len:=mystream.Size;
setlength(buffer,len);
mystream.Seek(0, soFromBeginning);
mystream.WriteBuffer(buffer[0],len);
ServerSocket1.Socket.Connections[0].SendBuf(buffer[0],len)
end;end.
客户端:
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, ScktComp;type
TForm1 = class(TForm)
ClientSocket1: TClientSocket;
Image1: TImage;
procedure FormCreate(Sender: TObject);
procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
procedure ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket;
ErrorEvent: TErrorEvent; var ErrorCode: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
begin
ClientSocket1.Open;
end;procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
var
len:longint;
mystream:TMemoryStream;
buffer : array of byte;
ss:string;
begin
len:=Socket.ReceiveLength;
setlength(buffer,len);
Socket.ReceiveBuf(buffer,len);
mystream:=TMemoryStream.Create;
mystream.Seek(0, soFromBeginning);
mystream.Write(buffer[0],len);
Image1.Picture.Bitmap.LoadFromStream(mystream);
end;
procedure TForm1.ClientSocket1Error(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
ErrorCode:=0;
end;end.当我单击 服务器端的 Button1 则出现地址错误的错误
各位大哥,
ServerSocket1.Socket.Connections[0].SendBuf(buffer[0],len)这里错了吗?谢谢!
服务器端:
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ScktComp;type
TForm1 = class(TForm)
ServerSocket1: TServerSocket;
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
begin
ServerSocket1.Open;
end;procedure TForm1.Button1Click(Sender: TObject);
var
filename:string; //ini 文件路径
mystream: TMemoryStream; //流
buffer : array of byte;
len:longint;
begin
filename:=ExtractFilePath(paramstr(0))+'014.bmp';
mystream := TMemoryStream.Create;
mystream.LoadFromFile(filename);
len:=mystream.Size;
setlength(buffer,len);
mystream.Seek(0, soFromBeginning);
mystream.WriteBuffer(buffer[0],len);
ServerSocket1.Socket.Connections[0].SendBuf(buffer[0],len)
end;end.
客户端:
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, ScktComp;type
TForm1 = class(TForm)
ClientSocket1: TClientSocket;
Image1: TImage;
procedure FormCreate(Sender: TObject);
procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
procedure ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket;
ErrorEvent: TErrorEvent; var ErrorCode: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
begin
ClientSocket1.Open;
end;procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
var
len:longint;
mystream:TMemoryStream;
buffer : array of byte;
ss:string;
begin
len:=Socket.ReceiveLength;
setlength(buffer,len);
Socket.ReceiveBuf(buffer,len);
mystream:=TMemoryStream.Create;
mystream.Seek(0, soFromBeginning);
mystream.Write(buffer[0],len);
Image1.Picture.Bitmap.LoadFromStream(mystream);
end;
procedure TForm1.ClientSocket1Error(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
ErrorCode:=0;
end;end.当我单击 服务器端的 Button1 则出现地址错误的错误
各位大哥,
ServerSocket1.Socket.Connections[0].SendBuf(buffer[0],len)这里错了吗?谢谢!
ServerSocket1.Socket.Connections[0].SendBuf(@buffer[0],len)编译通不过~