Tcp 无返回的recv崩溃

Tcp 无返回的recv崩溃,tcp,crash,recv,Tcp,Crash,Recv,我有一段代码,我应该通过TCP套接字接收一些数据: int ret; char mytext[SIZE_CTRL_MSG]; cerr << "Trying to receive" << endl; ret = recv(sock, &mytext[0], SIZE_CTRL_MSG, 0); cerr << "Packet received, ret=" << ret << endl; if(ret == SOCKET_ERR

我有一段代码,我应该通过TCP套接字接收一些数据:

int ret;
char mytext[SIZE_CTRL_MSG];
cerr << "Trying to receive" << endl;
ret = recv(sock, &mytext[0], SIZE_CTRL_MSG, 0);
cerr << "Packet received, ret=" << ret << endl;
if(ret == SOCKET_ERROR){
    printf("recv failed with error (%d)\n", WSAGetLastError());
    system("PAUSE");
    exit(1);
}

在这里,应用程序崩溃了。我只收到一条消息,“发生未处理的win32异常”。我正在WindowsXP上使用EclipseJuno。我尝试在recv()中使用
mytext
更改
&mytext[0]
,但我遇到了相同的情况。哪个可能是错误?

您确定
sock
有效吗?(即,上一次调用
sock=socket(…);
成功了吗?是的,成功了。在接收之前,我使用
sock
进行发送()。
Trying to receive