yangyanzhao 2017-03-21 06:12 采纳率: 87.5%
浏览 3142

SOCKET SEND后等待服务器返回RECV卡死

我程序里有一个一直运行着的RECV,还有一个SEND后的RECV,一直运行着的RECV能接受到数据
SEND后等待服务器返回就会卡死
NetSocket netSocket = (NetSocket *)lparam;
//SOCKET socketTCP = (SOCKET)lparam;
int loop = 0;
char bufRecv[MAX_PACKET];
char tempBuf[4096];
unsigned char
backData = new unsigned char[3036];
while (1){

int flag = recv(netSocket->pThis->socketTCP, bufRecv, strlen(bufRecv)+1, 0);
//int flag = recv(socketTCP, bufRecv, strlen(bufRecv) + 1, 0);
if (flag > 0){
int temp12 = strlen(bufRecv);
for (int i = 0; i tempBuf[i] = bufRecv[i];
}
while (temp12>MAX_PACKET){
loop++;
flag = recv(netSocket->pThis->socketTCP, bufRecv, MAX_PACKET, 0);
//flag = recv(socketTCP, bufRecv, MAX_PACKET, 0);
//temp12 = strlen(bufRecv) - MAX_PACKET*loop;
temp12 = strlen(bufRecv);
for (int i = 0; i < flag; i++){
tempBuf[i + MAX_PACKET*loop] = bufRecv[i];
}
}

        //backData = (unsigned char*)tempBuf;
        string backStr = "recv data from server ";
        backStr += tempBuf;
        //backData = new unsigned char[3036];
        int i = 0;
        for (i = 0; i < backStr.length(); i++){
            backData[i] = backStr[i];
        }
        backData[i] = '\0';
        //netSocket->pThis->index = netSocket->pThis->findIndexNum(backData);
    }
}
return 0;
这个可以接受到服务器的回应
result = send(socketTCP, (const char*)(char*)(sByte+offset), size, 0);
if (result < 0){
    DWORD a = GetLastError();
    ResumeThread(recvThread);
    ReleaseMutex(hMutex);
    return result;
}
Sleep(100);
//等待服务器响应 
int loop = 0;
char bufRecv[MAX_PACKET];
char tempBuf[4096];

int flag = recv(socketTCP, bufRecv, sizeof(bufRecv), 0);
if (flag < 0){
    DWORD a = GetLastError();
    ResumeThread(recvThread);
    ReleaseMutex(hMutex);
    return flag;
}
这个就卡死了
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 js调用html页面需要隐藏某个按钮
    • ¥15 ads仿真结果在圆图上是怎么读数的
    • ¥20 Cotex M3的调试和程序执行方式是什么样的?
    • ¥15 一道python难题3
    • ¥15 用matlab 设计一个不动点迭代法求解非线性方程组的代码
    • ¥15 牛顿斯科特系数表表示
    • ¥15 arduino 步进电机
    • ¥20 程序进入HardFault_Handler
    • ¥15 oracle集群安装出bug
    • ¥15 关于#python#的问题:自动化测试