用socketconnetion连接服务器,速度特别慢,有什么优化方法?(100分)

  • 主题发起人 主题发起人 lcl800
  • 开始时间 开始时间
L

lcl800

Unregistered / Unconfirmed
GUEST, unregistred user!
用socketconnetion连接服务器,速度特别慢,有什么优化方法?
有时,同一台机器既做客户机又作服务器,连接速度也一样的慢,要花差不多一分钟!
这是什么原因造成的?
一般情况下,客户机1秒钟内就可建立连接!
 
兄弟,你这种情况不是用socketconnection的问题吧?你有没有试过用DCOMconnection连接,
看看速度是不是会快很多?如果不是,就说明是你系统设置的问题.
通常情况下,优化应该在服务器端和客户端同时进行,具体的你可以参考李维的书.
我的三层结构程序有20多万条记录,连接一般只要3秒钟左右.
 
不會啊,我這里連接都很快呢!
不過我也有一個問題需要請教你一下,lcl800,希望幫助.謝謝!
是這樣的我也用了Socketconnetion連接服務器.在單機上做服務器工作站測試后全部通過.
但問題怪就怪在這里了.當我將服務器移到另一台沒有安裝Delphi的機器上注冊,后在工作
站上調用.SocketConnection1可以設置正常,且可以擊活,也看到服務器程式自動打開了.
但是當我設到ClientDataSet1控件時RemoteServer:SocketConnection1;ProviderName卻沒
有數據源了.這里什麼原因,更論上來講只要可以擊活服務器,且在本地試過可以打開數據源
的話當我移到其它機器上是應該也是可以的啊!!怪怪怪
服務器的數據控件用的是ADO
工作站和服務器電腦的操作系統:繁體Windows2000 professional 都在同一個工作組中.
且這個工作組中有一個Windows2000 Server和Novell Server
工作站有安裝Delphi,務服器沒有安裝
在控作的時候兩臺機都是用的超級用戶打開的
 
Dcomconnetion连接经常出现RPC错误,所以最后放弃了!
速度慢主要是在第一步,与数据库无关,即
SocketConnection1.Host:=EDhost.text;
try
SocketConnection1.Connected:=True;
except
Application.MessageBox('无法连接到服务器!', '错误',mb_OK+MB_ICONERROR);
end;
不知是什么原因。当连接以后,速度就特别快,读数据库几乎感觉不到延迟。
但有的机器执行上述连接又特别快,几乎感觉不到延迟。
有的机器慢,我想应该是网络配置的问题,但现在又不知问题在哪儿,所以请教各位。

 
To:micro73
DCom連接好像不能是RJ45結頭的網線吧!!只能是com結口的.
 
呵呵,DCom怎么会和RJ45有联系。。。 他们属于完全不同的网络协议层。 DCOM甚至和通讯
协议都没有关系,不管是IPX还是Tcp/IP、NetBeui,都可以使用。
我估计lcl800的问题是DNS设置引起的,解析机器名时耗时太长。解决办法:
1、改用IP地址试试,缺点:不够明确;
2、hosts文件中手动增加机器名的设置,缺点:IP地址更改后也需要手工修改;
3、设置一个好的DNS服务器,正反向都要设置正确,缺点:设置复杂;
 
LuJuhe:
你的开始两种方式我都试过,连接速度都差不多,至于第三种,我不知道如何操作,请指导。
sydan:
客户端程序连接服务器,应设置ADOconnection.connect为True,几个相关组件都应处于激活状态!
 
也许是因为反向解析耗时太多,看看服务器端是否有显示机器名的语句或者设置。把服务器
端的
设置DNS服务器,看看Win2K里面的说明,这个东西一下子说不清楚(是网管的事情,呵呵)。
 
有可能是服务器的问题,表空间开的太小了
 
我想不会是Socket的问题,一般来说Socket就第一次连接比较慢,
但它的速度也要比DCOM快。
 
多人接受答案了。
 
后退
顶部