断点执行socket通信程序,有部分程序不执行,断点符号显示成白色的小圈圈?

绿豆蛙2013 2009-08-02 05:02:06
如题,红色的是不执行的部分程序
// SOCK_STREAM is for TCP, SOCK_DGRAM is for UDP
s = socket( AF_INET, SOCK_STREAM, 0 );
if( s < 0 )
{
AfxMessageBox("failed connect1");
goto leave;
}
else
{
AfxMessageBox("successed connect1");
goto leave;
}


sin.sin_family = AF_INET;
sin.sin_addr.s_addr = tmp;
sin.sin_port = htons(CMDPORT);

//connect net
if ( connect( s, (const struct sockaddr *)&sin, sizeof(sin) ) < 0 )
{
AfxMessageBox("failed connect2");
goto leave;
}
else
{
AfxMessageBox("successed connect2");
goto leave;
}


if( send( s, buf, 100, 0 ) < 0 )
{
AfxMessageBox("send failed ");
goto leave;
}


leave:
if(pBuf)
delete []pBuf;
if(s >= 0)
closesocket(s);

WSACleanup();
}
...全文
83 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
绿豆蛙2013 2009-08-02
  • 打赏
  • 举报
回复
但是,我这是拷贝的一段程序啊,原来的那个程序就可以运行啊,怎么回事呢?
hdjfeng2009 2009-08-02
  • 打赏
  • 举报
回复
不建议使用 goto 语句~~
hdjfeng2009 2009-08-02
  • 打赏
  • 举报
回复
goto leave;

不管s = socket( AF_INET, SOCK_STREAM, 0 );
的执行结果如何,都直接跳到
leave:
if(pBuf)
delete []pBuf;
if(s >= 0)
closesocket(s);

WSACleanup();
所以红色的部分不会执行...
绿豆蛙2013 2009-08-02
  • 打赏
  • 举报
回复
这部分不执行
sin.sin_family = AF_INET;
sin.sin_addr.s_addr = tmp;
sin.sin_port = htons(CMDPORT);

//connect net
if ( connect( s, (const struct sockaddr *)&sin, sizeof(sin) ) < 0 )
{
AfxMessageBox("failed connect2");
goto leave;
}
else
{
AfxMessageBox("successed connect2");
goto leave;
}


if( send( s, buf, 100, 0 ) < 0 )
{
AfxMessageBox("send failed ");
goto leave;
}

18,357

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧