用winsock1.1编写TCP方式通讯。执行recv函数出现提示框“Unhandled exception in XX.exe(MSVCRTD.DLL): 0xC0000005:Access Violation.”
ye_cl 2001-11-19 02:01:31 本人用winsock1.1编写TCP方式通讯。
TCP服务器端向TCP客户端发送指令:
if (send (ClientSock, szPort_new, COMMAND_LEN, 0)
== SOCKET_ERROR)
{
wsprintf (szError,
TEXT("Sending data to the client failed. Error: %d"),
WSAGetLastError ());
MessageBox (NULL, szError, TEXT("Error"), MB_OK);
}
TCP客户端接收指令:
for (;;)
{
iReturn = recv (ServerSock, szServer, COMMAND_LEN, 0);
if (iReturn == 0 || iReturn == SOCKET_ERROR)
{
continue;
}
else
{
szServer[COMMAND_LEN] = '\0';
PostMessage(hMainHwnd,WM_CMDANALYZE,atoi(szServer),0);
continue;
}
}
发送和接收的字节数相等,我发送一次,客户接收后接收的内容正确,按理客户应该第二次循环到recv函数时堵塞在那里,一直等待接收,但是我碰到如下问题,
客户第二次循环到recv函数时执行recv函数出现提示框“Unhandled exception in
XX.exe(MSVCRTD.DLL): 0xC0000005:Access Violation.”按“确定”后出现“Find Source”对话框:"please enter the path for output.c",按“结束”进入汇编环境,什么地方错误?