Привета Я новичок в программировании сокетов, и я пытаюсь нижеследующий кодом из учебника по http://www.binarytides.com/winsock-socket-programming-tutorial/C программирование гнезда под окнами
Я пытаюсь подключиться к серверу, и я с помощью IP-адрес google. Вот код:
#include<stdio.h>
#include<winsock2.h>
#pragma comment(lib,"ws2_32.lib") //Winsock Library
int main(int argc , char *argv[])
{
WSADATA wsa;
SOCKET s;
struct sockaddr_in server;
printf("\nInitialising Winsock...");
if (WSAStartup(MAKEWORD(2,2),&wsa) != 0)
{
printf("Failed. Error Code : %d",WSAGetLastError());
return 1;
}
printf("Initialised.\n");
//Create a socket
if((s = socket(AF_INET , SOCK_STREAM , 0)) == INVALID_SOCKET)
{
printf("Could not create socket : %d" , WSAGetLastError());
}
printf("Socket created.\n");
server.sin_addr.s_addr = inet_addr("74.125.224.72");
server.sin_family = AF_INET;
server.sin_port = htons(80);
//Connect to remote server
if (connect(s, (struct sockaddr *)&server , sizeof(server)) < 0)
{
puts("connect error");
return 1;
}
puts("Connected");
return 0;
}
Пока сокет может быть создан, но я не могу подключиться к серверу. Чтобы быть более конкретным, я всегда выхожу и имею следующее:
Программа «[2060] SocketCTest.exe: Native» вышла с кодом 1 (0x1).
, даже если я установил точку останова перед возвратом.
https://msdn.microsoft.com/en-us/library/windows/desktop/ms741580%28v=vs.85%29.aspx –
Не забудьте 'closesocket (s);' и 'WSACleanup();' перед каждым возвратом 'заявление. – CristiFati
Попробуйте обнулить «сервер» перед его инициализацией (например, memset (& server, 0, sizeof server)). – Stuart