如何区分从同一IP地址连接的2个Indy客户端?

时间:2014-01-06 03:41:15

标签: delphi sockets client-server indy

抱歉,对于Indy文档的links目前无效。我不知道网站是否已关闭或其他什么,但目前我的浏览器中没有加载它们。

我在一个“服务器”应用程序中有一个TIdCmdTcpServer,在另一个“客户端”应用程序中有一个TIdCmdTcpClient。我知道如何在连接后获取客户端的IP地址。我不知道的是如何区分从同一个IP地址连接的2个客户端。任何人都可以帮助吗?

2 个答案:

答案 0 :(得分:4)

这不是一个Indy问题,更像是一个普通网络问题。

同一地址的不同客户端必须使用不同的端口。这里我指的是连接客户端的端口。因此,您可以使用不同的端口来区分同一地址的不同客户端。

答案 1 :(得分:1)

请勿将TIdCmdTCPClientTIdCmdTCPServer一起使用。它们并不意味着一起使用,并且很容易与它们进行通信死锁,因为它们都使用内部读取线程,希望其他对等方发送数据。将TIdTCPClientTIdCmdTCPServerTIdCmdTCPClientTIdTCPServer一起使用。

话虽如此,您可以使用客户端的远程IP /端口进行区分,但通常最好自己制作标识符,例如要求客户端使用用户名登录,然后根据需要进行跟踪。