|
Или скажите хотя бы в чем ошибка заключается в проге. На функции recv прога виснет:
#include <stdio.h>
#include <stdlib.h>
#include <winsock2.h>
#include <string.h>
int s,c;
char* MsgText;
BYTE Buf[1];
main () {
WSADATA WsaData;
int err = WSAStartup (0x0101, &WsaData);
if (err == SOCKET_ERROR)
{
printf ("WSAStartup() failed: %ld\n", GetLastError ());
return 1;
}
s=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
printf ("socket %d\n", s);
SOCKADDR_IN anAddr;
anAddr.sin_family = AF_INET;
anAddr.sin_port = htons(80);
anAddr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
c=connect(s, (struct sockaddr *)&anAddr, sizeof(struct sockaddr));
printf ("connect %d\n", c);
MsgText="GET /guest.txt HTTP/1.0";
send(s, MsgText, 30, 0);
recv(s, Buf, sizeof(Buf), 0); // если recv закомментировать, все работает
shutdown(s, 2);
}
|