用线程进行SOCKET通讯的问题!!急(20分)

  • 主题发起人 主题发起人 bluesnowly
  • 开始时间 开始时间
B

bluesnowly

Unregistered / Unconfirmed
GUEST, unregistred user!
我的程序的SOCKET服务器端在当ACCEPT客户端连接的时侯会失去响应.就跟程序死了一样,连TIMER时钟都不动了.请为这是为什么呢??特别是当网络特别慢的时候,这个ACCEPT会需要很长时间,这样程序就会死在那很久.
我想着是否该把服务器端给放到一个线程里,与主线程分开,但不知道该如何放,如何在线程里写SOCKET的那些事件响应呢?如ACCEPT,ONCLIENTREAD等.还请高手指教
 
听不懂啊,你所谓放到一个线程中是否是指在线程中执行ACCEP,如果是这样是不需要同步的啊,只需要在FORM.ONCREATE中产生一个线程让它执行就可以了
 
accept循环应该放到一个线程里
推荐使用WSAAsyncSelect
 
请上面二位说具体点行吗,最好有代码事例???

我的意思就是在线程中执行ACCEPT.SIJUN8177怎么让一个线程执行ACCEPT呢?是在线程的USES中加入form1的UNIT1,然后直接在EXECUTE中使用form1.ServerSocket1.active:=true吗,这样ServerSocket1和响应事件如ACCEPT会在线程中执行吗??感觉上好象不行呢
 
可以使用异步模式
 
呵呵,
阻塞式的SOCKET的应用就是这样了,
用多线程分开做,
或者是用异步!
你留个信箱吧。
 
我的信箱是bluesnow829@yahoo.com.cn
希望尽快得到你们的帮助.
你们说的我也不太明白.能否具体点,或者有个代码呢??
 
可以将socket做为一个参数变量传给线程就可以了
 
socket做为一个参数变量传给线程就可以了 ?
什么意思啊
能解释给我听吗?谢谢
sg_jin521@sina.com.cn
 
后退
顶部