weixin_38852958 2017-12-15 01:46 采纳率: 66.7%
浏览 1371
已采纳

Socket.Receive的问题。进入断点后没有报任何错,没获取到int就跳出断点

             IPAddress ipAddress = IPAddress.Parse(ip);
            IPEndPoint localEndPoint = new IPEndPoint(ipAddress, SPort);
            Array.Resize(ref SckSs, 1);
            SckSs[0] = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            SckSs[0].Bind(localEndPoint);
            SckSs[0].Listen(50);
            //20171214
            byte[] bytes;
            Socket handler = SckSs[0].Accept();
            string data = null;
            while (true)
            {

                bytes = new byte[1024];
                try
                {
                    int bytesRec = handler.Receive(bytes);
                    data += Encoding.ASCII.GetString(bytes, 0, bytesRec);
                    if (data.IndexOf("<EOF>") > -1)
                    {
                        break;
                    }
                }
                catch (ThreadAbortException e)
                {
                    Console.WriteLine("{0} Error code: {1}.", e.Message);
                }
                catch (SocketException e)
                {
                    Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode);
                }
                catch(Exception e)
                {
                    Console.WriteLine("{0} Error code: {1}.", e.Message);
                }

            }

断点放在int bytesRec = handler.Receive(bytes);进入断点后F10直接跳出了断点,没有继续执行下一步,也没有任何报错和进catch。这是和传送的数据有关系吗?
有没有大神 求告知!谢谢!!!

  • 写回答

2条回答 默认 最新

  • kingforyang 2017-12-15 02:21
    关注

    receive函数不设置超时,会一直等待客户端数据。程序进入阻塞模式

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 运筹学中在线排序的时间在线排序的在线LPT算法
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试,帮帮忙吧