# Re: Winsock 常常会卡住??!!

Posted by Sam on September 05, 1998 at 09:37:26:

In Reply to: Winsock 常常会卡住??!! posted by Maxwell on September 05, 1998 at 05:42:08:

: 我写了一套 Server 程式, 可以自动依 Client 的数量自动增加 Winsock 数量,
: 在 Client 断线过后也会自动释放, 但是奇怪的是在传送时常会有 "卡死" 现象, Server 明明把资讯丢出去了, Client 怎么等就是收不到, 更莫名其妙的问题是, 我把 Server 暂停(进入单步执行), 再按一次全速执行, Client 就可以收到资料, 怎么找就是找不出问题, 请问有人解决过此类怪异现象吗?

: P.S. 在 Winsock 的 DataArrival 事件中在接收资料前加上 DoEvents 可以稍稍改善此问题, 但是还是会有偶而出现的情况, 而且这种程式非常不适合加上 DoEvents, 常会有 Close 事件发生在 DataArrival 之前, 这样判断式要写的更复杂, 程式也越写越慢...

Hi:依本人之浅见必定是阁下在设定winsock (TCP)环境有问题,我曾试过想写一个类似Broadcast(由Server to Client)的功能但失败了原因是Server根本没丢出来但若是将各port sned 时间delay 1-2秒即可.总之建议方法如下:
1.Check Client是否为Receive port,Server是否为针对每一client有唯一相对port.
2.请先确定Server是否有送出,若无则可将送给各Clinet时间分开即每0.5-1秒送给一个Client.
3.改为以UDP传送

Good Luck ! Sam

Follow Ups: