+ -
当前位置:首页 → 问答吧 → Delphi7下面indy的TCPServer结合OPCServer开发程序报错

Delphi7下面indy的TCPServer结合OPCServer开发程序报错

时间:2011-12-20

来源:互联网

搞了几天了,试了好多种方法,就是不行
现在有两个错误,请大家帮忙解决下,明天就得去现场部署了,但这两个错误就是无法解决。急死我了。
Error one:
  Socket Error # 10054 错误
  这个错误出现情况我知道是TCPServer导致的。出现情况就是,网络突然闪断一下,就报这个错误了。请教下具体的实现方式。
  情况:我是服务器跟单片机通信,单片机是不会主动发东西给我的,所以这里突然断开之后,单片机压根不知道我断了。并且我以前建立的连接也丢失了,请问如何重置连接(单片机无法发送数据上来了,就是说我找不到单片机,它也找不到我了)。

Error two
  Exception EidTerminateThreadTimeout in module OPCServer.exe at 0006B7BD Terminate Thread Timeout
  这个错误出现的情况有两种,一种是不可预知,可能三小时,可能半小时,可能两小时。另外一种是我将这个服务程序关掉之后会出这个错误。偶尔,但是大部分次数会报错。
  这个我就根本摸不到头脑,都不知道如何出现这个错误的,我OPCServer是从OPCDemo程序里模仿出来的。加了TCPServer控件。求教大家帮帮忙,看看我这到底该如何解决。
  另外,我一直有一个疑问,我将OPC注册成一个服务。用组态软件调用这个服务,服务启动,就启动了这个OPC服务程序,组态软件一关,没调用这个服务程序了,服务程序就关了,但服务程序里面有TCPserver,已经建立了连接了,我不知道这个时候TCPServer来得及关闭连接清空线程那些事情吗?
  请大家帮帮我,小弟拜谢!

作者: lgaimin   发布时间: 2011-12-20

delphi写的作为tcp服务端?那单片机应该是主动连到delphi程序的
使用一个普通的tcp服务程序,会如何?

作者: sz_haitao   发布时间: 2011-12-20