同样的操作,多数情况正常,但有时候会出现没有响应的情况。请问这是什么原因引起的?

解决方案 »

  1.   

    你看一下客户端进行是否也结束了;还有,就要看你的连接方式中的Connected
      

  2.   

    我已经在Onclose事件中把Connected设为false了。但还是有这种情况出现
      

  3.   

    Onclose事件中把Connected设为false
    你不要手动让它的Connected设为False,让它关闭吧;或者,你在RDM里进行释放
      

  4.   

    呵呵,还是让我说准了,我也觉的,应该是客户端线程没有释放完完全;
    它的进程不可能随着你的Connect而存在的;
      

  5.   

    关注中,我的程序也是开了多线程,有时可以正常结束,有时候会导致dllhost.exe占用CPU99%而死机,线程结束时要做怎样的控制呢?
      

  6.   

    跟踪一下, 你会发现 100% cpu 占用是在 CoUninitialize 这条语句上, 2000 时间很长, 打个sp2 会不会好?nt 不会哈。
    另 scktsrvr 会有垃圾,要有个 garbage 回收机制,httpsrvr 中有例子, 正在研究中...
      

  7.   

    CoUninitialize这条语句是在什么地方的?我找不到啊
      

  8.   

    那个 SocketConnection 有 bug, 关闭是用 ESocketError 异常完成的,在 Destroy 时 手动工 SocketConnection.Connnected := false 常会没有响应,所以让它自动,在 mainform 的 onClose 上写 Connected = false 好像会正常,你要自已试试
      

  9.   

    sckrsrvr 
    OnExecute 最后一行
      

  10.   

    这问题我也碰到过,特别在网络环境下,2000的客户机还好一点,要是98就会等很长时间,好像死机一样,其实解决办法很简单,你将SocketConnection的SupportCallback属性设为False就可以了。
      

  11.   

    我本来就是在mainform的OnClose里写的关闭代码啊,但还是出问题。常会没有响应,所以让它自动?通过什么设置可以让它自动关闭呢?
      

  12.   

    see see 原码?
    or msn :[email protected]
      

  13.   

    改了SupportCallback这个属性对程序会产生什么影响呢?
      

  14.   

    只要你没有用到Winsock 2的回调,将SocketConnection的SupportCallback属性设为False就没有问题,原来我也是百思不得其解,客户还老说我的程序有问题,现在什么事都没有了,哈哈,一天都光了。其实你跟踪SConnect.pas源码,随着SupportCallback的取值不同,SocketConnection是用不同的机制去实现TCP/IP通讯部分的功能的,具体我也忘得差不多了,有兴趣你可自行跟踪一下SConnect.pas单元。