Borland Socket Server在通过Internet联接时,很有问题,有没有替代品?(300分)

  • 主题发起人 主题发起人 程云
  • 开始时间 开始时间
to f950436:
是呀,在局域网里一点问题也没有,
一放在Internet上,在某个不情况的情况下就出问题了。
不清况问题在哪里
 
可以使用asta的三層結構方式,他們也是使用socket進行通信,可以支持100個以上
的remote client,沒有問題 www.astatech.com
 
asta是什么是“Automatic System Trouble Analysis 自动系统故障分析”吗?
介绍一下吧。
 
你可以上他們的網站看一下,是一個可以用delphi進行三層式開發的控件,他們的產品在全世界
有80多個國家的用戶使用,是開發可以在internet上運行的三層式結構程式的解決方案
 
他們的網站為:www.astatech.com
 
我也一直使用ASTA,是在Internet开发上最好的开发工具了,可是,你不能轻易修改
了,asta和midas的概念上有不同的地方,不能兼容
 
估计是什么的问题呢?。。。。

多人时出现的问题?建议检查看看,我觉得一般是没有什么问题的,除非是你程序结构
或者资源上的问题。。
 
看来这个解决不了了,只能先这样了,
以后还是尽量用WEBCONNECTION来代替
 

WAIT_OBJECT_0 + 1:
while PeekMessage(msg, 0, 0, 0, PM_REMOVE) do
DispatchMessage(msg);
改成
WAIT_OBJECT_0 + 1:begin
while PeekMessage(msg, 0, 0, 0, PM_REMOVE) do
DispatchMessage(msg);
Sleep(1);
end;
看看CPU占用率会不会下来。
 
to szf:
多谢,我试试,过两天再告诉结果,
这种显现并不是常出现,但是,一但出现,可是很麻烦。
 
Socketsever是很老的玩意儿,难道还在用delphi3不成?
Sleep(0)就行,主要是为了让开线程不过我怀疑是否有效,
可以把上面代码放到一个优先级最低的线程中。
 
好像问题不大,我一次传输了4000条数据也没有出现问题呀。你是怎么设置的?还是其他
代码的影响?
 
我也一直用Socket方式,但主要在局域网中运行,
感觉当终端》30时速度很慢,除非服务器的内存很大1G以上,否则影响性能。
ASTA我没用过,请问哪有下的?能找到资料么?
 
噢,我也真不知怎么回事儿。
这东西在局域网中自然是没有事。

可我是在Internet上用,
但一般也没有事的,
可在某种情况下就会出现这种问题,
我一直未找到问题的原因,
我曾用四个电话拨号上网,
并同时开了近百个客户端,
大量的上传 下载数据,
结果都没有问题,

我猜可能是有些使用宽带上网的用户造成的,
他们在路由路或是防火墙上的设置导致这种问题的出现。
但我不清楚到底是什么问题。

 
hehe,如果不是太复杂的应用,我都宁可直接调用winsock api的。
 
试验一下middleware吧,ics的作者写的,走的就是socket
,不过好像用的人没有asta多

Borland的中间件,一句话就是烂
 
to Chenlili:
我也想直接用Socket API,但项目已成形了,不好改,
当初不是我定的这种构架。

to hubdog:
我也想用middleware和asta,但没有好的资料供参考,
你可有这方面的东西吗,最好能有例程。
 
我用ASTA有段日子了,听我的,不要用ASTA,这东西很Buggy。原因在于它的Server端用Borland自带的ServerSocket
主要问题:
1)效率低,由于是基于Message方式,所有socket读写都由MainThread完成,如果有大量Client连接,而且数据交换
频繁,那你就糗大了;
2)对Client的管理极度混乱,除非你能容忍你的服务器不知道有client断开连接;
3)脆弱,特别时当你用线程来完成某些费时操作时,有一种100%让server挂掉的方法:发一个能引起server在Thread里面
发生Exception的请求(例如一个非法的SQL),然后立刻断开连接

 
In intranet scktsrvr is very good, but in internet I can't be connected
 
后退
顶部