帮忙看一下TServerSocket问题,多谢了(100分)

  • 主题发起人 thedream
  • 开始时间
T

thedream

Unregistered / Unconfirmed
GUEST, unregistred user!
为什么我处理SeverSocket的OnClientConnect事件的时候,当客户端有连接时
服务器程序就跟死机一样,点都点不了,要等大概20秒,才能使用,如果不处理OnClientConnect
就没有问题,而且同样的程序在有的机子上可以,有的机子上速度就这么慢,我怀疑是系统原因
但重装系统后,仍然还是很慢,有杀毒软件,排除病毒可能,请各位师兄师弟帮忙看看
 
把OnClientConnect的代码帖出来看看。
 
代码就是获得socket的远程主机名字
procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
showmessage(socket.remotehost);
end;
 
好奇怪,有的时候明明可以,但是过了一阵子之后,又不行了,要等20秒!!
是什么原因呢
 
这就对了,获得名字需要DNS或者WINS服务器,如果DNS服务器没有配置好,就会出现这个
问题。配置好正确的DNS服务器即可,局域网内可以用hosts文件解析固定的、常用的名字,
速度会很快。
 
谢谢你
可是我用的是直接用的IP地址,没有用计算机名字
 
从IP反向获取计算机名字,也会查询DNS服务器.
而且DNS设置的常见错误就是正向解析正确,反向错误!
你不妨把那一句改成:
showmessage(socket.RemoteAddress);
只显示IP地址,不显示名称看看问题是否解决.
 
好的,谢谢你啦,我等会儿试试看,烦了一天了:(
 
to LuJuhe
现在可以了,原来真的是DNS的错,因为我的机器DNS设置的是192.168.0.1,但我现在没有连接到这台机子,所以在解析的时候耗费了大量的时间,当我把网线接与DNS服务器接通上之后,速度马上就变得很快了!
多谢大哥帮忙:)
 
接受答案了.
 
顶部