0 / 0 / 0
Регистрация: 30.09.2016
Сообщений: 7
1

Winsock. Почему в приведенном коде не работает создание сокета?

25.07.2019, 14:54. Показов 328. Ответов 2

Добрый день!
Пробую освоить сетевое программирование под винду. Планируется клиентское приложение, которое сможет обмениваться данными с сервером, только нюанс в том, что это не консольное приложение потому встал вопрос: почему в приведенном коде создание сокета не работает? Буду благодарна за советы и ссылки, заранее спасибо :')

Код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
                     _In_opt_ HINSTANCE hPrevInstance,
                     _In_ LPWSTR    lpCmdLine,
                     _In_ int       nCmdShow)
{
    UNREFERENCED_PARAMETER(hPrevInstance);
    UNREFERENCED_PARAMETER(lpCmdLine);
 
    // TODO: Разместите код здесь.
 
    WSADATA wsa;
 
    if (WSAStartup(MAKEWORD(2, 2), &wsa) != 0) 
        return 1;
    
    SOCKET socket;
    
 
    // Инициализация глобальных строк
    LoadStringW(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
    LoadStringW(hInstance, IDC_CLIENT, szWindowClass, MAX_LOADSTRING);
    MyRegisterClass(hInstance);
 
    // Выполнить инициализацию приложения:
    if (!InitInstance (hInstance, nCmdShow))
    {
        return FALSE;
    }
 
    HACCEL hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_CLIENT));
 
    MSG msg;
    
    socket = socket(AF_INET, SOCK_STREAM, 0); 
    //E0109 выражение перед скобками вероятного вызова должно иметь тип функции (pointer-to-)    
 
 
    // Цикл основного сообщения:
    while (GetMessage(&msg, nullptr, 0, 0))
    {
        if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
        {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
    }
 
    return (int) msg.wParam;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.07.2019, 14:54
Ответы с готовыми решениями:

Не работает сортировка в приведенном коде
что тут не так? #include <iostream> using namespace std; void en(int* a, int size); void...

Не правильно работает if в приведенном коде
Есть функция которая считает начало слова в строке(a - массив строк, b - массив...

Почему в приведенном коде всегда первым отрицательным элементом является нулевой элемент
Я туплю и не понимаю почему он всегда первым отрицательным элементом берёт нулевой элемент....

Каким образом работает swap в приведенном коде?
Каким образом работает swap в коде ниже? #include<list> #include<memory> #include<utility>...

2
6571 / 4556 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
25.07.2019, 15:01 2
Цитата Сообщение от Ningi Посмотреть сообщение
Пробую освоить сетевое программирование под винду. Планируется клиентское приложение, которое сможет обмениваться данными с сервером, только нюанс в том, что это не консольное приложение потому встал вопрос: почему в приведенном коде создание сокета не работает? Буду благодарна за советы и ссылки, заранее спасибо :')
Потому что у тебя переменная socket называется так же, как функция socket(). Назови переменную по-другому
1
0 / 0 / 0
Регистрация: 30.09.2016
Сообщений: 7
25.07.2019, 15:04  [ТС] 3
Вторая тема с подобным вопросом и второй раз нахожу ответ после публикации темы, просьба закрыть тему из-за неактуальности вопроса более.

Косяк в том, что не стоило называть сокет "socket", т.к. есть такое же имя функции в строке с ошибкой


oleg-m1973 , спасибо, только поняла, что это тоже может вызывать проблемы)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.07.2019, 15:04
Помогаю со студенческими работами здесь

Как работает генерация случайных чисел в приведенном коде
Дорогие Форумчане! Подскажите пожалуйста, как работает нижеследующий код для генерации случайных...

Почему mas(0,0) пустой в приведенном коде
Почему mas(0,0) пустой? Sub CoolSort(ByRef SourceArr() As Variant, ByVal N As Integer) '...

Почему решение не рационально в приведенном коде
using System; using System.Collections.Generic; using System.Linq; using System.Text; ...

Почему в приведенном коде выводится число 6?
Собственно вопрос в теме, почему выводится число 6? sing System; using...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru