请高手看看这段代码有什么问题
private void StartListen(string strAddress,int iPort)
{
try
{
IPAddress ipAddress = Dns.Resolve(strAddress).AddressList[0];
listener = new TcpListener(ipAddress, iPort);
listener.Start();
while (true)
{
Socket s = listener.AcceptSocket() ;
if(s != null)
{
DealWithSocket dws = new DealWithSocket(s,this.tbLog) ;
StartThread(new ThreadStart(dws.DealWith)) ;
}
}
}
catch ( Exception e)
{
MessageBox.Show(e.Message);
}
}
执行这段代码后,程序一直不会动,死机一样,是什么原因?
这句Socket s = listener.AcceptSocket() ;后,程序不会往下运行。
问题点数:20、回复次数:6Top
1 楼MyLf(不睡觉的鱼)回复于 2005-08-04 18:16:26 得分 0
没玩过,帮顶。Top
2 楼mathsword(梦在流浪)回复于 2005-08-04 18:36:59 得分 0
这句等待接入的socket呀,你的客户端程序了Top
3 楼nonesharp(无锋)回复于 2005-08-04 20:30:30 得分 0
它在等待客户端发送信息,你再做个客户端发送socket的程序,两个程序一起启动调试,然后再打上断点就看的到了。Top
4 楼luren2000(路人)回复于 2005-08-05 09:33:11 得分 0
客户断也做了,就是服务段一直没反应,死机一样Top
5 楼conan1211(柯楠)回复于 2005-08-05 09:53:07 得分 0
while (true)
是个死循环啊Top
6 楼zhangA()回复于 2005-08-05 10:00:12 得分 0
像这种while (true) 应当写在新线程中,在主线程中当然程序会假死了
Top




