自己动手改程序,把VC++深入详解里第15章程序从UDP改为TCP,不知道哪出了问题,消息均不显示,第一次发送消息没错误但不显示消息,第二次recv报错,无视接着发,第4次connect也报错。不解若无连接,recv前的accept怎么不报错呢
if(SOCKET_ERROR==listen(m_socket,1))  //4次发送connect函数才返回失败,队列不才1次吗? MessageBox("监听失败");
return TRUE;
}DWORD WINAPI CChatDlg::RecvProc(LPVOID lpParameter)
{
SOCKET sock=((RECVPARAM*)lpParameter)->sock;
HWND hwnd=((RECVPARAM*)lpParameter)->hwnd;
SOCKADDR_IN addrClient;
int len=sizeof(SOCKADDR);
char recvBuf[100];
char tempBuf[300];
int retval;
while(TRUE)
{   
if(INVALID_SOCKET==accept(sock,(SOCKADDR*)&addrClient,&len))
AfxMessageBox("???");
SOCKET sockConn=accept(sock,(SOCKADDR*)&addrClient,&len);
retval=recv(sock,recvBuf,100,0);
if(SOCKET_ERROR==retval)
{CString Aerror;
Aerror.Format("接收失败,错误码:%d",WSAGetLastError());  //第2次出现套接字无连接失败
AfxMessageBox(Aerror);
return 0;
      }
sprintf(tempBuf,"%s 说: %s",inet_ntoa(addrClient.sin_addr),recvBuf);
::PostMessage(hwnd,WM_RECVDATA,0,(LPARAM)tempBuf);