程序启动时,做以下操作
ServerSocket1.port:=1001;
ServerSocket1.open;然后用客户端连接服务器,客户端可以正常向服务器发送消息,但是服务端向客户端发送消息时候服务端就报错我得发送语句是这样:procedure TForm1.Button2Click(Sender: TObject);
begin
ServerSocket1.Socket.SendText(edit2.Text);
end;
但是一发送就报错,出现如下信息:(已经检查不是客户端问题)【Debugger Exception Notification】
Project Project1.exe raised exception class ESocketError with message 'Windows socket error:'由于套接字没有连接并且(当使用一个sendto调用发送数据报套接字时)没有提供地址,发送或接收数据的请求没有被接受。(10057),on API 'send".Process stopped.Use Step or Run to continue.□View CPU Window
ServerSocket1.port:=1001;
ServerSocket1.open;然后用客户端连接服务器,客户端可以正常向服务器发送消息,但是服务端向客户端发送消息时候服务端就报错我得发送语句是这样:procedure TForm1.Button2Click(Sender: TObject);
begin
ServerSocket1.Socket.SendText(edit2.Text);
end;
但是一发送就报错,出现如下信息:(已经检查不是客户端问题)【Debugger Exception Notification】
Project Project1.exe raised exception class ESocketError with message 'Windows socket error:'由于套接字没有连接并且(当使用一个sendto调用发送数据报套接字时)没有提供地址,发送或接收数据的请求没有被接受。(10057),on API 'send".Process stopped.Use Step or Run to continue.□View CPU Window
ServerSocket1.Socket.SendText(edit2.Text);
发送不出消息但是如果按照楼上得方法
ServerSocket1.Connection[0].Socket.SendText(edit2.Text);当Serversocket1按“点”时候,根本就没有Connection这个属性??请问怎么办???
TClient=Class(TObject)
FCHandle: integer;
FListLink: Integer;
FCSocket:TCustomWinSocket;
FCUserName:string;
FCAddress:string;
FCUsed: boolean;
end; ClistList: TList; //全局变量 保存所有的Clinet信息procedure Tfrm_ServerMain.ServerSocketClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
var
Client:TClient;
begin
Client := TClient.Create;
Client.FCHandle := Socket.SocketHandle;
Client.FCSocket := Socket;
Client.FCAddress := Socket.RemoteAddress;
Client.FCUserName := 'Login';
Client.FListLink := lbClients.Items.Count;
lbClients.Items.Add(Client.FCUserName);
Socket.Data := Client;
ClistList.Add(Client);
end;
//发消息
var
Msg:string;
Client:TClient;
begin
......在ClistList对象里,找到你要发消息的Client
Client := ClistList.Items[lbClients.ItemIndex];
Client.FCSocket.SendText(Msg)
end;