サーバー フォームには、4 つの tcp 接続ユーザーのみを受け入れる stringgride があります。この目的のために、サーバーに udpclient を配置し、クライアントに udpserver を配置します。
サーバー形式の tcp-onconnect イベント:
//Server Side has udp client
procedure TForm1.IdTCPServer1Connect(AThread: TIdPeerThread);
begin
//when fifth user want to connect to tcpserver
//server first ensure at list one of the 4 connected user in grid has disconnected
//by send udp broadcast to 4 user
//but in this timeout None of these users do not respond , Although still connected
IdUDPClient1.Broadcast('IP', 1718);
For i:=1 To 4 Do
begin
IPList.Add(IdUDPClient1.ReceiveString(200););
end;
end;
//Client Side has udp server
procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
begin
//
ip:=GetipAddress();
ABinding.SendTo(ABinding.PeerIP, ABinding.PeerPort, ip[1], Length(ip));
end;
クライアントでイーサリアルを実行してネットワークをチェックしたところ、UDP メッセージがサーバーからクライアントに送信されましたが、クライアントが応答しませんでした。
コードの問題を教えてください