本帖最后由 zpj888 于 2012-12-29 15:22:36 编辑

解决方案 »

  1.   

    代码可能稍长,实际通信的东西就是两个Run方法那几十行
      

  2.   

    主线程外的线程出现错误自然直接退了
    撸过 我一般加try catch
      

  3.   

    try catch只是屏蔽问题,我这里特意让它报错的,始终没找到WIN7下报错的原因
      

  4.   

    楼主运行cmd,再从cmd里运行你的程序
    程序出错了,上面会显示错误信息的
      

  5.   

    try catch 除了屏蔽问题。还可以查找问题。把异常写入日志。好查问题。
    既然已经用了socket干嘛还要用tcplister,tcpclient??
      

  6.   

    正解,对于不能100%保证不出错的地方我都会加try catch 然后把错误记录下来,如果你的程序给用户用 3,2下就出现异常自动退出 那多用几次 用户就会抛弃你的
      

  7.   

    之前那个下载链接失效了,这个是新的
    http://l5.yunpan.cn/lk/QkvrtVxLFBvQx
      

  8.   

    起始我最终代码全部用的socket,现象跟这个一样
    另外提供下载的代码里我使用了这个,但是捕捉不到任何异常,基本可以肯定是非托管代码报的异常,我们捕捉不到的东西
                //主线程异常
                Application.ThreadException +=
                    new ThreadExceptionEventHandler(Application_ThreadException);
                //其他线程异常
                AppDomain.CurrentDomain.UnhandledException +=
                    new UnhandledExceptionEventHandler(AppDomain_UnhandledException);        private static void AppDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
            {// 各种未知线程异常
                Log("程序线程中出现未知异常,信息如下:\n" + ((Exception)e.ExceptionObject).ToString());
                Environment.Exit(800);
            }        private static void Application_ThreadException(object sender, ThreadExceptionEventArgs e)
            {// 主线程未知异常
                Log("程序主线程中出现未知异常,信息如下:\n" + e.Exception.ToString());
                Environment.Exit(900);
            }
      

  9.   


    之前测试过直接使用socket现象一样