请教:我这样的情况需要怎样处理?(SOCKET 怎么使服务器和客户端建立连接)谢谢! ( 积分: 5 )

  • 主题发起人 主题发起人 lsh998
  • 开始时间 开始时间
L

lsh998

Unregistered / Unconfirmed
GUEST, unregistred user!
请教:
是这样的,
我有服务器端和客户端,
用 serversocket 和 clientsocket 来通信,

客户端不知道服务器的 IP 地址, 服务器知道客户端的 IP 地址,

假设,先运行客户端:

客户端程序如下:
unit Unit1;

interface

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

type
TForm1 = class(TForm)
ClientSocket1: TClientSocket;
procedure FormCreate(Sender: TObject);
procedure ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket;
ErrorEvent: TErrorEvent; var ErrorCode: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
IP:string;
implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
ClientSocket1.Open;
end;

procedure TForm1.ClientSocket1Error(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
ErrorCode:=0;
end;

end.


服务器:
unit Unit1;

interface

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

type
TForm1 = class(TForm)
ServerSocket1: TServerSocket;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

begin
ServerSocket1.Socket.RemoteAddress:='192.168.0.118';
ServerSocket1.Socket.SendText('dfdf');
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
ServerSocket1.Socket.RemoteAddress:='192.168.0.119';
ServerSocket1.Socket.SendText('dfdf');
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
ServerSocket1.Open;
end;

end.

服务器端编译有错误:
ServerSocket1.Socket.RemoteAddress:='192.168.0.118';
cannot assign to a read-only property


各位大哥,那我怎么使 服务器和客户端建立连接
不客户端不进行任何操作

谢谢!
 
图片太大了
超过64K了
 
谢谢大哥,那要怎么办呢?
我的程序要怎么改?

谢谢!
 
多次,少量。
盒子上有利用Socket传输文件的例子。
 
还不是很明白?
假设有两个图片 A1,A2,A3
分别 130KB ,400KB,300KB

当我单击 button1 ,则需要把这三个 发送过去

我首先发 64 KB ,客户端接受了 64KB
客户端接收了 这 64 KB 后,怎么处理呢?
谢谢!
 
现在 图片是小于 64 KB 的

当我单击 服务器端的 Button1 时,
客户端出现了错误!
 
用INDY,如果传输大量的数据用INDY,是9的版本比较好用。
 
多人接受答案了。
 
后退
顶部