客户端A 想服务器B 发送一个 TCP 封装的HTTP报文 PACK1,抓包工具抓到服务器返回的TCP封装的HTTP报文Pack2。但是客户端的RECV却一直阻塞。表示没有数据到达。请教可能是什么原因?
下面是客户端的代码:#include "stdio.h"
#include <winsock2.h>#include <ws2tcpip.h> #include <tpipv6.h> 
void   main()
{
        ADDRINFO   hints, * saServer;
LPHOSTENT   lphostent;
WSADATA   wsadata;
        SOCKET   hsocket;
int   nRet;
        char   hostname[1000]   ;
 strcpy(hostname,"GET /announce?....省略"); 
 printf( "%s ",hostname);
char   dest[10];
if(WSAStartup(winsock_version,&wsadata))
printf( "can 't   open ");memset(&hints,0,sizeof(hints));
hints.ai_family=PF_INET6;
hints.ai_socktype=SOCK_STREAM;
//hints.ai_protocol=IPPROTO_TCP; 
int rc=getaddrinfo("服务器IPV6地址","6969",&hints,&saServer);
if(rc==WSANO_DATA)
return;
hsocket   =   socket(saServer->ai_family,  saServer->ai_socktype,saServer->ai_protocol);
if(hsocket==INVALID_SOCKET)
printf("Create socket failed!\n");
nRet   =   connect(hsocket,   saServer->ai_addr,saServer->ai_addrlen);if   (nRet   ==   SOCKET_ERROR)
{
printf( "can 't   connect ");
closesocket(hsocket);
return;
}
else
printf( "connected   with   ");
        nRet   =   send(hsocket,   hostname,   strlen(hostname),   0);
if   (nRet   ==   SOCKET_ERROR)
{
printf( "send()   failed ");
closesocket(hsocket);}
else
printf( "send()   OK\n ");
nRet=1;
while(nRet> 0)
{
nRet=recv(hsocket,(LPSTR)dest,sizeof(dest),0);//阻塞
if(nRet> 0)
dest[nRet]=0;
else
dest[0]=0;
printf( "\nReceived   bytes:%d\n ",nRet);
printf( "Result:\n%s ",dest);
}}