小弟我的Start按钮里面只有下面的内容,可是停止后,在启动,总是提示"bind fail!"

我的Start按钮里面只有下面的内容,可是停止后,在启动,总是提示"bind fail!"?;
BOOL CHDRT_UDP::Start()
{
if(!UpdateData(TRUE))return FALSE;
m_bStart=FALSE;

WSAData wsData;
WORD version=MAKEWORD(2,2);
if(WSAStartup(version,&wsData))
{
AddMessageToMessageBar("start up fail!");
return FALSE;
}
if(version!=wsData.wVersion)
{
AddMessageToMessageBar("version not right!");
return FALSE;
}
m_server=socket(PF_INET,SOCK_DGRAM,0);
if(INVALID_SOCKET==m_server)
{
AddMessageToMessageBar("socket create fail!");
return FALSE;
}
memset((void*)&server_addr,0,sizeof(SOCKADDR));
server_addr.sin_family=AF_INET;
server_addr.sin_addr.s_addr=inet_addr(m_my_ip);
server_addr.sin_port=htons(m_my_port);

int error=bind(m_server,(LPSOCKADDR)&server_addr,sizeof(SOCKADDR));
if(SOCKET_ERROR==error)
{
AddMessageToMessageBar("bind fail!");
return FALSE;
}//每次重新启动,都提示bind fail!
error=WSAAsyncSelect(m_server,m_hWnd,WM_SOCKET_READ,FD_READ);
if(SOCKET_ERROR==error)
{
AddMessageToMessageBar("select event fail!");
return FALSE;
}

m_bStart=TRUE;
AddMessageToMessageBar("open success");
return TRUE;
}

stop里面只有killTimer 

我自己觉得可能是stop里面没有停止连接,但是怎样停止啊?

------解决方案--------------------
你觉得,你这帖子,已经把问题说的很清晰了吗??? 怎么我觉得完全不知道你要问的是什么?

-----
在stop里面,要 closesocket(m_server);
你的 m_server 这个socket 都还没有关闭,就意味着,那个端口依然是被监听的(即已经被打开),而只要端口被打开,在将其关闭之前,将不能被再次打开.

如果你问的不是网络编程,如果你stop的意思不是把服务器关闭,如果你再次点击start不是要服务器重启,那么,当我上面的话没说.