socketserver的问题? ( 积分: 50 )

  • 主题发起人 主题发起人 guxlei
  • 开始时间 开始时间
G

guxlei

Unregistered / Unconfirmed
GUEST, unregistred user!
serversocket连接很多客户端。怎样向某一个客户端发送信息?
 
serversocket连接很多客户端。怎样向某一个客户端发送信息?
 
根据连接者的port号区分
 
各个客户端建立的Socket都不同
 
socket是不同的
 
http://www.2ccc.com/article.asp?articleid=2274
 
根据连接者的port号区分,每个端口都可以不一样区别
 
顶上去,,能否说的详细,
 
楼主的问题就有毛病,一般情况下,都是client先连接到server的,不会出现server去连client的。clientSocket连到serverSocket的时候,有一个socket参数。
你在server端把client的socket保存起来,要向client发信息的时候,就用这个socket就行了的。这我用过多次了,肯定没问题的.
 
ServerSocket.Socket.Connections 存放了连接的client socket,不需要自己去保存,ActiveConnections是连接的client数目。
至于“根据连接者的port号区分”不知说的什么,监听port都用的同一个。
示范代码如下:

with ServerSocket.Socket do
for i:=0 to ActiveConnections-1 do
begin
// Memo2.Lines.Add('ActiveConnections : ' + inttostr(ActiveConnections) );
Memo2.Lines.Add('send : '
+ ' --> ' + connections.RemoteAddress
+ '('+ connections.Remotehost+')'
+ ' Client[' + inttostr(i+1) + '] ' );
Connections.SendText('hello');
end
 
客户端登陆连接后,记录下他的Socket.SocketHandle,发送的时候,用
procedure TForm1.btnOneSendClick(Sender: TObject);
var
ID:Integer;
Socket:TCustomWinSocket;
begin
if Combox1.Text='' then
exit;
ID:=strtoint(Combox1.text);
//用已有的Socket句柄建立socket对象
Socket:=TCustomWinSocket.Create(ID);
Socket.SendText(EdtSend.text);
end;
 
初学者1号, 笑江横,stlont,三位大侠,解决了我困惑的问题!到这里拿分!?!


http://www.delphibbs.com/delphibbs/dispq.asp?lid=3190590
 
后退
顶部