首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

内网 的几台客户端登录外网的服务器,在服务器里 怎么区分这几个客户端

2012-12-24 
内网 的几台客户端登录外网的服务器,在服务器里 如何区分这几个客户端?我用d7的indy控件做了服务器端和客

内网 的几台客户端登录外网的服务器,在服务器里 如何区分这几个客户端?
我用d7的indy控件做了服务器端和客户端;但目前有一个情况,就是有部分客户端都在一个内网里面,按IP地址来显示的话,对服务器端来说,这几个客户端都是一个IP地址,有什么比较好的办法区分这几个客户端?
[最优解释]
每个连接都有唯一套接字,Socket呀,用这个保证唯一性,IP地址+端口也可区分,但是这样比较起来麻烦
[其他解释]
客户端的IP+端口,才是唯一的,也肯定是唯一的
[其他解释]
没人回答吗
[其他解释]
连接后发送登录信息
[其他解释]

引用:
每个连接都有唯一套接字,Socket呀,用这个保证唯一性,IP地址+端口也可区分,但是这样比较起来麻烦

我的目的,是在服务器端做个窗口,显示每一台客户端的登陆信息,用什么可以标识每一台客户端。你说的好像不是我想要的
[其他解释]
引用:
连接后发送登录信息

这个登陆信息要怎么写,可以保证客户端的唯一性?
[其他解释]
一个连接一个结构,结构包括
Socket : TSocket; //查询关键字
IP : AnsiString;
Port : integer;
LoginName : AnsiString;

网络事件中分别申请、填写各项数据、释放;把结构放入TList,循环List来显示就可以了
[其他解释]
你的问题很有意思,既然你自己写的程序,为什么不自己发送标志信息呢?你可以在客户端配置xml或者ini文件,给每一个客户端做标记。你可以发送网卡地址,作为标记,你还可以直接发送他们的内网地址做标记,你的目的仅仅是显示,如果还要通讯,就将套接字和显示的信息绑定,不就可以了?既然可以通讯,有什么纠结的?
[其他解释]
好比 一个机器开了两个客户端    
[其他解释]
你开10个也可以在身份信息中加入不同的进程标志,只是我认为最好不允许多个实例运行。
[其他解释]
引用:
你的问题很有意思,既然你自己写的程序,为什么不自己发送标志信息呢?你可以在客户端配置xml或者ini文件,给每一个客户端做标记。你可以发送网卡地址,作为标记,你还可以直接发送他们的内网地址做标记,你的目的仅仅是显示,如果还要通讯,就将套接字和显示的信息绑定,不就可以了?既然可以通讯,有什么纠结的?

因为我现在搞的那个项目,登陆名称很可能几个客户端都是一个账号,按登陆信息来显示区分客户端是不太现实的。再说那个在客户端配置XML或者INI文件什么的,我也觉得不太现实,100多个客户端,不可能一个一个的去设吧。。现在也只有用网卡地址号来区分客户端比较现实一点,不过现在网卡地址号都可以改了。。。
[其他解释]
引用:
一个连接一个结构,结构包括
Socket : TSocket; //查询关键字
IP : AnsiString;
Port : integer;
LoginName : AnsiString;

网络事件中分别申请、填写各项数据、释放;把结构放入TList,循环List来显示就可以了

TSocket 是什么类型,指针吗?还是什么? 
[其他解释]
按楼主的想法,楼上的方法也不可取。端口号也是可以改的,虽然唯一但不能指定某一台机器。
[其他解释]
客户端的端口,在内网里应该是起到对外网的端口映射的功能吧,如果是这样,这个确实比网卡地址要好些。我先试试,如果确实可行,马上结贴送分。。
[其他解释]
硬盘序列号改不了,或者说很难

热点排行