2015-08-17 13 views
0

я обнаружил, что я должен использовать Winsock ... Я попробовал этот пример:TCP соединение с C на Windows, [клиент/сервер]

http://www.binarytides.com/winsock-socket-programming-tutorial/

но ошибка начинается с этой функцией WSAStartup.

мне нужно соединение клиент/сервер ...

Edit:

Я использую Windows XP, GCC компилятор и кодоблок IDE ... Я получаю эту ошибку:

C:\Documents and Settings\Administrator\Desktop\FunTool\main.c|15|undefined reference to `[email protected]'|

Я пытаясь запустить этот код:

/* 
    Initialise Winsock 
*/ 

#include<stdio.h> 
#include<winsock2.h> 

#pragma comment(lib,"ws2_32.lib") //Winsock Library 

int main(int argc , char *argv[]) 
{ 
    WSADATA wsa; 

    printf("\nInitialising Winsock..."); 
    if (WSAStartup(MAKEWORD(2,2),&wsa) != 0) 
    { 
     printf("Failed. Error Code : %d",WSAGetLastError()); 
     return 1; 
    } 

    printf("Initialised."); 

    return 0; 
} 
+0

Вам нужно будет добавить дополнительную информацию, чтобы ответить на этот вопрос: какая ошибка вы получаете, какой компилятор вы используете, какую операционную систему и т. Д. – fvu

+0

Я бы предпочел, чтобы этот пример был вставлен здесь. Связи могут со временем закрыться. –

+0

Пожалуйста, предоставьте [mcve]. И не связывайтесь где-нибудь. Код должен быть включен в текст! – Olaf

ответ

1

Код компилируется и работает отлично в Visual Studio 2013.

Я не знаком с ID Code Codeblock, но я подозреваю, что он игнорирует pragma для связи с ws2_32.lib, вызывая ошибку компоновщика.

На основании других ответов SO попробуйте открыть project > build options > linker settings и добавьте ws2_32.lib.

+0

Где находится путь к 'ws2_32.lib'? –

+0

Возможно, он уже настроен в среде IDE, поэтому попробуйте сначала без пути. Если это не сработает, выполните поиск на вашем компьютере для файла (местоположение зависит от версии SDK, где оно было установлено и т. Д.) –

+0

В CodeBlocks ему не нужен путь, просто добавьте ws2_23.lib в библиотеках ссылок. Обратите внимание, что #pragma - это директива, специфичная для компилятора, как указано выше, gcc не делает #pragma comment (lib, "library_name") –