Показать сообщение отдельно
Старый 26.05.2003, 00:57     # 2
XeHK
Guest
 
Сообщения: n/a

Или скажите хотя бы в чем ошибка заключается в проге. На функции 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);

}