感觉很乱bool acceptenum = true; 是个局部变量 啥时停止?不过看你thread应该是个类成员变量。Socket socket = listener.AcceptSocket();
Thread thread1 = new Thread(new ThreadStart(xianshi));
thread1.Start(); 你这个xianshi函数 怎么跟新建立起来的socket连接关联上的?

解决方案 »

  1.   

    能知道是那里死了吗
    listener.AcceptSocket()
    这里你是不是写了在UI线程上面?
      

  2.   

    能知道是那么死了吗?listener.AcceptSocket()
    这句是不是写了在UI线程上面
      

  3.   

    能知道是那么死了吗?listener.AcceptSocket()
    这句是不是写了在UI线程上面
      

  4.   

    private void startsocketlisten() 
            { 
                 bool acceptenum = true; 
               while (acceptenum==true) 
                { 
                    try 
                    {                        if (listener.Pending()) 
                           { 
                                   Socket socket = listener.AcceptSocket(); 
                                  Thread thread1 = new Thread(new ThreadStart(xianshi)); 
                                       thread1.Start(); 
                                   
                            } 
                           
                        } 
                    catch { } 
                }         } bool acceptenum = true; 
    跟while语句,不死机才怪
      

  5.   

    private void startsocketlisten() 
            { 
                 bool acceptenum = true; 
               while (acceptenum==true) 
                { 
                    try 
                    {                        if (listener.Pending()) 
                           { 
                                   Socket socket = listener.AcceptSocket(); 
                                  Thread thread1 = new Thread(new ThreadStart(xianshi)); 
                                       thread1.Start(); 
                                   
                            } 
                           
                        } 
                    catch { } 
                }         } bool acceptenum = true; 
    跟while语句,不死机才怪
      

  6.   

    private void startsocketlisten() 
            { 
                 bool acceptenum = true; 
               while (acceptenum==true) 
                { 
                    try 
                    {                        if (listener.Pending()) 
                           { 
                                   Socket socket = listener.AcceptSocket(); 
                                  Thread thread1 = new Thread(new ThreadStart(xianshi)); 
                                       thread1.Start(); 
                                   
                            } 
                           
                        } 
                    catch { } 
                }         } bool acceptenum = true; 
    跟while语句,不死机才怪
      

  7.   

    private void startsocketlisten() 
            { 
                 bool acceptenum = true; 
               while (acceptenum==true) 
               bool acceptenum = true; 
    跟while语句,不死机才怪
      

  8.   

    private void startsocketlisten() 
            { 
                 bool acceptenum = true; 
               while (acceptenum==true) 
               bool acceptenum = true; 
    跟while语句,不死机才怪
      

  9.   

    private void startsocketlisten() 
            { 
                 bool acceptenum = true; 
               while (acceptenum==true) 
               bool acceptenum = true; 
    跟while语句,不死机才怪
      

  10.   

    能知道是那么死了吗?listener.AcceptSocket()
    这句是不是写了在UI线程上面
      

  11.   

    写聊天室的程序,肯定要用到多线程,至于如何编写,我也不是太内行?
    以前做过P2P聊天软件,你死机,就是没有用多线程,在VS 2005下调试多线程,我
    的解决办法是Console.WriteLine()输出
      

  12.   

    你用的是socket同步调用,用到了多线程,但是对接受近来的socket没有进行处理.
    如果每次socket调用时间都不长,是短连接,可以用同步socket+多线程或socket+队列+多线程,但如果是长连接,建议用异步socket,这样效率比较高!
      

  13.   

    public void xianshi()
      {//数据解析}
    问题是你的数据解析代码没有写好!需要用lock(object){}来处理或者用monitor方法来实现数据排队解析