急!如何实现重试对话框的"重试"功能啊?

linyang4242 2007-11-26 05:46:46
程序的第一步是要绑定到某一个端口,但有可能绑定失败,故做了个(retval==SOCKET_ERROR)判断。判断错误时要弹出具有“重试”功能的
提示对话框(MB_RETRYCANCEL)。那么,单击“重试”按钮要继续进行绑定端口,那要怎么编程实现这个逻辑判断呢?
我个人认为:bind()错误时返回SOCKET_ERROR,然后才出现MessageBox(),用户单击“重试”按钮返回IDRETRY,这时又bind()..........但此二者发生的时刻不同, 要怎么写这个判断语句啊??
BOOL CCharDlgDlg::InitSocket()
{
m_socket=socket(AF_INET ,SOCK_DGRAM ,0);
SOCKADDR_IN addrSock;
addrSock.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
addrSock.sin_port=htons(6000);
addrSock.sin_family=AF_INET;

int retval=bind(m_socket,(SOCKADDR*)&addrSock,sizeof(addrSock));
if(retval==SOCKET_ERROR)
{
closesocket(m_socket);
MessageBox("端口绑定错误!",NULL,MB_RETRYCANCEL);//?
return FALSE;
}
return TRUE;
}
...全文
57 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
linyang4242 2007-11-26
  • 打赏
  • 举报
回复
int retval=bind(m_socket,(SOCKADDR*)&addrSock,sizeof(addrSock));
int flag=0;
if(retval==SOCKET_ERROR)
{

flag=MessageBox("端口绑定错误!",NULL,MB_RETRYCANCEL);
if(IDRETRY==flag)
{
while(retval==SOCKET_ERROR)
{
retval=bind(m_socket,(SOCKADDR*)&addrSock,sizeof(addrSock));
}
return true;
}
else
{
closesocket(m_socket);
return false;
}

return false;

}

这样可以吗?

18,356

社区成员

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

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