请教:edit组件如何显示IP地址
各位好!
我刚开始尝试学习C++ Builder,正在用TIdTCPClient组件和TIdTCPServer组件做一个socket通信程序。
请问,服务器端,打算用edit组件显示服务器端自身的IP和Port。
代码如下:
edtIP->Text=IdTCPServer->Bindings->Items->IP;
edtPort->Text=IdTCPServer->Bindings->Items->Port;
提示错误:
E2193
Too few parameters in call to '_fastcall TIdSocket Handles::GetItem(int)';
应该如何修改呢?
还有,当有多个客户端连接到服务器时,将所有已连接的客户端用ListBox组件显示出来,我打算实现一个功能:从列表中鼠标选中某个客户端,然后从服务器端主动断开与其的连接。
这个要怎么实现呢?
[解决办法]
IdTCPServer可以绑定多个IP地址和端口,所以获取的时候需要指定显示第几个配置,如:
edtIP->Text = IdTCPServer1->Bindings->Items[0]->IP;edtPort->Text = IdTCPServer1->Bindings->Items[0]->Port;
[解决办法]
调用 IdTCPServer 的 Threads或Contexts的LockList方法,会返回一个客户端连接的列表对象,通过这个列表对象就可以遍历所有连接的客户端,包括断开其连接。