strcpy(m_requestheader,"POST http://daienming.vicp.net/ HTTP/1.0\r\nHOST:daienming.vicp.net:80\r\nContent-Length:104\r\n\r\n|||00000||0003|||0001000000009999|0002000000009999|0003000000009999|0004000000009999|0005000000009999|||\r\n\r\n");
int nTemp = strlen(m_requestheader);
if((nSize = send(m_Socket,(char*)m_requestheader,nTemp-1,NULL)) == SOCKET_ERROR)
{
n = GetLastError();
return -1;
}代码中 send 返回值长度正确,是字符串长度,但是我收到的内容中最后的\r\n\r\n没有了,我用嗅探器查看,发现send端发送的最后四个字符全部变成了0,这是怎么回事?
int nTemp = strlen(m_requestheader);
if((nSize = send(m_Socket,(char*)m_requestheader,nTemp-1,NULL)) == SOCKET_ERROR)
{
n = GetLastError();
return -1;
}代码中 send 返回值长度正确,是字符串长度,但是我收到的内容中最后的\r\n\r\n没有了,我用嗅探器查看,发现send端发送的最后四个字符全部变成了0,这是怎么回事?
{
SOCKET m_Socket; struct sockaddr_in server;
server.sin_family=AF_INET;
server.sin_port=htons(80);
server.sin_addr.S_un.S_addr=inet_addr("192.168.1.66"); WORD wVersionRequested;
WSADATA wsaData;
wVersionRequested = MAKEWORD( 2, 2 );
WSAStartup( wVersionRequested, &wsaData );
sockaddr_in ServerAddr;
ServerAddr.sin_family=AF_INET;
ServerAddr.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
ServerAddr.sin_port=htons(0);
m_Socket=socket(PF_INET,SOCK_STREAM,0);
int n;
if (( n = connect(m_Socket,(sockaddr*)&server,80)) == SOCKET_ERROR)
{
n = GetLastError();
}
char szTemp[1000] = {NULL};
strcpy(szTemp,"POST http://daienming.vicp.net/ HTTP/1.0\r\nHOST:daienming.vicp.net:80\r\nContent-Length:104\r\n\r\n|||00000||0003|||0001000000009999|0002000000009999|0003000000009999|0004000000009999|0005000000009999|||\r\n\r\n");
int nSize = 0 ;
int nTemp = strlen(szTemp);
if((nSize = send(m_Socket,(char*)szTemp,nTemp,NULL)) == SOCKET_ERROR)
{ n = GetLastError();
return;
}}
我的程序就这样~没了!楼上的兄弟再看看
发送端用的是同一个程序吗?不理解啊,会不会是接收端自身有隐患呢?