局域网内,客户端在不知道服务端IP地址的情况下如何与服务端建立TCP/IP通信?《局域网上的考试系统 》的问题?(据称是由南京大学两位博士生做的) (50分)

  • 主题发起人 主题发起人 zfs88
  • 开始时间 开始时间
Z

zfs88

Unregistered / Unconfirmed
GUEST, unregistred user!
局域网内,客户端在不知道服务端IP地址的情况下如何与服务端建立TCP/IP通信?
用搜索的办法,搜索誰在侦听?怎么搜?
这是由“江苏省计算机职称考试软件”(局域网)想到的问题
(据称是由南京大学两位博士生做的) 它不需要在客户端每台机器去设置服务端的IP地址。
只要Ping得通就可考试。而Ping不通时,客户端仍能在服务端发卷时得到一个套节字错误
的消息。
 
这样也行啊……
 
计算机名称呢?
 
没办法啦,没可能啊?
 
NetBios不行吗?邮件槽也可以,命名管道也行.
 
如果计算机名称解析不了的话,
只有发广播了,服务器端要改动一下
就象DHCP一样,两者通过一问一答传递信息
 
到www.wx88.net ,以用户名:oldBoy ,口令:8260713 登录我的邮箱,下载一个名为
exam.exe的附件,这是“江苏省计算机职称考试”软件,在局域网上使用的。试一下,
看看它为什么无需在客户端设置服务端的地址?
它肯定不是用UDP广播的。
 
可以用UDP和tcp/ip两种协议一起使用。
首先在服务器端,建立一个UDP监听端口,监听来自客户端的搜索请求,如果收到刚返回
服务器的IP地址,客户端收到后,即可用收到的IP与该IP建立tcp/ip连接。
这种程序应该也没什么难度。
当客户端用UDP在局域网里进行搜索的时候,可以用广播的形式,一般是向192.168.0.255
发送,则局域网里的所有用户都能收到!
 
无论是upd还是tcp都是基于ip的,不知道对方的ip的情况下不可能建立连接.
但可以通过多种方式得到对方ip.比如在zfs88提到的软件中,不需要在客户端指定服务器ip
但并不说明客户端在运行阶段仍不知服务端ip(除非它不是用ip来连接c/s的)
 
udp的广播形式只要知道局域网的IP类型,然后用广播地址就OK了,不知道对方IP也可以的
 
疾风之猫所说的不失为一个可行方法,但还有没有其它方法呢?
还有一人问题:就是“江苏省计算机职称考试”那个软件,当我故意修改两台机的IP地址,
使其Ping不通,然后在服务端发卷,这时客户端仍可收到一个“套节字错误”的消息,有
谁能解释其中原因?
 
因为能发广播的可不止TCP/IP协议,IPX/SPX也可以,而且相对更加稳定。
 
不可能,如果想通过tcpip通信的话
 
to zfs88:
我打不开那个问题(http://www.delphibbs.com/delphibbs/dispq.asp?LID=804948)了,
不知道为什么。对不起,我没装QQ,也从没用过它,:),现在的问题是哪个程序在我的
机器上无法正常运行,因为我打开ExamConsole后无法装载试题,它告诉我“A盘非试卷盘,
请插入正确的试卷盘后重新装载”。能告诉我这程序是怎么用的吗?
 
我想到另外一个问题,如果使用DHCP的方式由服务器给各个客户端动态分配IP地址的话,
那么当客户端运行起来之后,是不是能够获得给他分配IP地址的DHCP服务器的地址呢?
如果能够获得的话,这种情况就可以不用一个一个的去为各个客户端进行服务器地址的配置了。
 
玩过帝国时代没有?
 
to zw84611, : 试卷必须在A:盘,可用<subst 试卷目录 a:> 生成一个虚拟A:盘就行了。
 
homejun说的对,那个服务端软件必须放在A盘才能运行,这可能是设计人员故意这样的。
另外,进入考试后,看不到题目(单选、多选、判断),省职称办那邦家伙不肯给。
关于我提的那个:
《局域网上的考试系统 》的问题?(据称是由南京大学两位博士生做的)

不知为什么打不开了,是不是被斑竹删除了?


 
后退
顶部