Я пытаюсь запустить простую программу ниже, используя C:
#include <winsock2.h>
#include <ws2tcpip.h>
#include <stdlib.h>
#include <stdio.h>
#pragma comment (lib, "Ws2_32.lib")
int main(int argc, char **argv)
{
int iResult;
WSADATA wsa;
SOCKET s;
struct sockaddr_in server;
printf("Initialising Winsock...\n");
if (WSAStartup(MAKEWORD(2, 2), &wsa) != 0)
{
printf("Failed. Error Code : %d", WSAGetLastError());
getchar();
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());
getchar();
}
printf("Socket created.\n");
server.sin_addr.s_addr = inet_addr("74.125.235.20");
server.sin_family = AF_INET;
server.sin_port = htons(80);
//Connect to remote server
iResult = connect(s, (struct sockaddr *)&server, sizeof (server));
if (iResult == SOCKET_ERROR)
{
printf("Connect function failed with error: %ld\n", WSAGetLastError());
iResult = closesocket(s);
if (iResult == SOCKET_ERROR)
printf("closesocket function failed with error: %ld\n", WSAGetLastError());
WSACleanup();
getchar();
return 1;
}
printf("Connected");
getchar();
return 0;
}
Это в основном программа C, которая создает сокет и устанавливает соединение с Google. (Я просто следую руководству: http://www.binarytides.com/winsock-socket-programming-tutorial, так как я новичок в программировании сокетов).
Теперь моя программа выводит:
Initialising Winsock...
Initialised.
Socket Created.
Connect function failed with error: 10013
После некоторых исследований я обнаружил, что это означает, что это ошибка отказа в разрешении. Я попытался найти некоторые исправления, такие как запуск Visual Studio Express от имени администратора и запуск этих команд в командной строке:
netsh winsock reset catalog
netsh int ip reset reset.log hit
и перезагрузить компьютер, но он все еще не работает.
Стоит упомянуть, что когда я выполнил 2-ю команду: netsh int ip reset reset.log, я получил следующее сообщение об ошибке:
Resetting , failed.
Access is denied.
There's no user specified settings to be reset.
Хотя я запускал командную строку от имени администратора.
Я также временно деактивировал свой Kaspersky Internet Security, но до сих пор не исправился. Я совершенно новичок в программировании на C и сокетах.