ServerSocket 和 ClientSocket 问题。
在ClientSocket 显示和服务器连接成功,可是我通过SerberSocket.socket.sendtext时,却提示说:由于套接字没有连接并且(当使用一个sendto,调用发送数据报套接字时)没有提供地址,发送或接受数据的请求没有被接受。 可是我在ClientSocket端设置的连接,已经连接成功了,为什么直接用SerberSocket.socket发送消息不能发送出去,为什么呀??能不能给我解决一下呀??
在ClientSocket 显示和服务器连接成功,可是我通过SerberSocket.socket.sendtext时,却提示说:由于套接字没有连接并且(当使用一个sendto,调用发送数据报套接字时)没有提供地址,发送或接受数据的请求没有被接受。 可是我在ClientSocket端设置的连接,已经连接成功了,为什么直接用SerberSocket.socket发送消息不能发送出去,为什么呀??能不能给我解决一下呀??
begin
ServerSocket1.Socket.Connections[i].SendText('abcd')
end;
serversocket1.Active:=true;
serversocket1.Open;
serversocket1.Socket.SendText('getscreen');
ClientSocket 端 代码:
with ClientSocket do
begin
try
Host :='218.59.97.136';
Active := True;
clientsocket.Socket.Lock; finally
end;
end;有问题吗??
测试时: ServerSocket1.Socket.ActiveConnections =0 怎么弄??
{ Private declarations }
public
{ Public declarations }
protected
IsServer: Boolean;
end;var
Form1: TForm1;
Server: String;
implementation{$R *.dfm}procedure TForm1.BitBtn2Click(Sender: TObject);
begin
ClientSocket1.Active := False;
ServerSocket1.Active := False;
close;
end;procedure TForm1.BitBtn1Click(Sender: TObject);
begin
ClientSocket1.Active := False;
ServerSocket1.Active := True;
Statusbar1.Panels[0].Text := 'Listening...';
end;procedure TForm1.BitBtn3Click(Sender: TObject);
begin
if ClientSocket1.Active then
begin
ClientSocket1.Active := False;
end;
if InputQuery('计算机连接到', '要连接的计算机的IP地址或者计算机名:', Server) then
if Length(Server) > 0 then
begin
ClientSocket1.Host := Server;
ClientSocket1.Active := True;
end;
end;procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_Return then
begin
if IsServer then
begin
ServerSocket1.Socket.Connections[0].SendText(Memo1.Lines.Text)
end
else
begin
ClientSocket1.Socket.SendText(Memo1.Lines.Text);
end;
end;
end;procedure TForm1.ServerSocket1Accept(Sender: TObject;
Socket: TCustomWinSocket);
begin
IsServer := True;
Statusbar1.Panels[0].Text := 'Connected to: ' + Socket.RemoteAddress;
end;procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
begin
Memo2.Lines.Add(Socket.ReceiveText);
end;procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
begin
Memo2.Lines.Add(Socket.ReceiveText);
end;
procedure TForm1.BitBtn4Click(Sender: TObject);
begin
ClientSocket1.Active := False;
ServerSocket1.Active := False;
end;end.
List index out of bounds(0)