怎样判断分别连到服务端两个TServerSocket上的客户端来源于同一台远端电脑?

时间:2023-01-14 23:28:27
我用

if (PSuperVise^.mSocket.RemoteHost=Socket.RemoteHost) and
        (PSuperVise^.mSocket.RemoteAddress=Socket.RemoteAddress) then

进行判断,结果在局域网内没有问题,但在外网(互联网)中,发现判断出错。

为什么?怎么办?

5 个解决方案

#1


if (PSuperVise^.mSocket.RemoteHost=Socket.RemoteHost) 
這個判斷已經足夠了吧??

#2


RemoteHost是否要在客户端设置后才有的?

#3


在Internet上Socket.RemoteHost指的网关或有真实IP的机器,除非客户端自定义一个识别标志,不然服务器是不能判断是不是同一台机器的。

#4


kmzym():
  那怎样才能自定义识别标志,让客户端连接上来时就能知道对方属于哪台机器呢?

  是不是Socket的属性里没有一项可以用来判断客户端身份的?

#5


to collecte
  用Socket的属性不能判别客户的机器,可以在客户登录服务器的时候,发送客户相关信息来给服务器。

#1


if (PSuperVise^.mSocket.RemoteHost=Socket.RemoteHost) 
這個判斷已經足夠了吧??

#2


RemoteHost是否要在客户端设置后才有的?

#3


在Internet上Socket.RemoteHost指的网关或有真实IP的机器,除非客户端自定义一个识别标志,不然服务器是不能判断是不是同一台机器的。

#4


kmzym():
  那怎样才能自定义识别标志,让客户端连接上来时就能知道对方属于哪台机器呢?

  是不是Socket的属性里没有一项可以用来判断客户端身份的?

#5


to collecte
  用Socket的属性不能判别客户的机器,可以在客户登录服务器的时候,发送客户相关信息来给服务器。