Форум программистов, компьютерный форум, киберфорум
C++: Сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 31.03.2016
Сообщений: 20

Написание простейшего сервера

02.04.2016, 13:23. Показов 1900. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, погуглил, поискал по форумам, но не нашел, как сделать, чтобы можно было подключиться к написанному мной серверу,запущенному локально, введя в адресной строке, например, localehost.

Как это сделать? Где об этом почитать?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.04.2016, 13:23
Ответы с готовыми решениями:

Написание простейшего TCP\ip клиента ...
начал изучение кодинга tcp\ip ... качнул книгу и столкнулся с такой вот бедой ... есть код: #include "stdafx.h" #include...

Сокеты, прототип простейшего сервера
Учу сокеты, переписал листинг из книги (комментарии если что, мои. мало ли где глупость написал). При компиляции дает ошибку на многих...

Сырые сокеты: написание промежуточного сервера, через которого подключены клиенты и сервера клиентов
Доброго времени суток! Мне нужно сделать промежуточный сервер через которого подключены клиенты и сервера клиентов. Промежуточный сервер...

27
Модератор
 Аватар для vxg
3406 / 2177 / 354
Регистрация: 13.01.2012
Сообщений: 8,444
02.04.2016, 15:55
Например тут Пример POST запроса
0
11 / 15 / 8
Регистрация: 12.10.2011
Сообщений: 811
03.04.2016, 06:01
подключение к локальному серверу на том же компе происходит по IP 127.0.0.1
0
0 / 0 / 0
Регистрация: 31.03.2016
Сообщений: 20
03.04.2016, 12:36  [ТС]
vxg, код заработал, но через браузер к серверу я обратиться не могу.
0
Модератор
 Аватар для vxg
3406 / 2177 / 354
Регистрация: 13.01.2012
Сообщений: 8,444
03.04.2016, 16:39
Тут телепатов нет. Покажите код и чего вы него хотите?
0
0 / 0 / 0
Регистрация: 31.03.2016
Сообщений: 20
03.04.2016, 17:11  [ТС]
vxg, мне код особо не нужен, я сам напишу, за реализацию вашего кода спасибо.

Я просто не понимаю, КАК сделать, чтоб через браузер(клиент) передать GET запрос ЛОКАЛЬНОМУ серверу, а сервер должен ответить и в браузере должны отразиться результаты.
0
Модератор
 Аватар для vxg
3406 / 2177 / 354
Регистрация: 13.01.2012
Сообщений: 8,444
03.04.2016, 17:34
Пишите в адресной строке браузера http: // 127.0.0.1/ или http : //localhost/ и на ваш сервер если он существует и слушает 80 порт уйдёт GET запрос

Добавлено через 1 минуту
Если ваш сервер сформирует корректный ответ браузер его отобразит
1
0 / 0 / 0
Регистрация: 31.03.2016
Сообщений: 20
05.04.2016, 01:40  [ТС]
vxg, я тут свой код привел, Вы случайно не знаете, почему именно на функции connect вылетает?..
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
#include <winsock2.h>
#include <windows.h>
#include <stdio.h>
#include <string>
#include <cstring>
 
int main()
{
    WSADATA ws;
    SOCKET s;
    
    WSAStartup(MAKEWORD(2,2), &ws);
 
    std::string str("Hello.");
    char * cstr = new char [str.length()+1];
    std::strcpy(cstr, str.c_str());
 
    if(INVALID_SOCKET == (s = socket (AF_INET, SOCK_STREAM, 0) ) ) {
        printf("%s", WSAGetLastError());
    }
 
    struct sockaddr_in saddr;
 
    saddr.sin_family = AF_INET;
    saddr.sin_addr.S_un.S_addr = inet_addr ("127.0.0.1");
    saddr.sin_port = htons (80);
 
    if(SOCKET_ERROR == (connect(s, (SOCKADDR *) &saddr, sizeof(saddr)))) {
        printf("%s", WSAGetLastError());
    }
    if(SOCKET_ERROR == ( send(s, cstr, str.length()+1, 0))) {
        printf("%s", WSAGetLastError());
    }
    closesocket (s);
    WSACleanup();
    return 0;
}
0
11 / 15 / 8
Регистрация: 12.10.2011
Сообщений: 811
05.04.2016, 06:48
Прочтение этой статьи тебе даст ответы на все вопросы...
https://msdn.microsoft.com/en-... s.85).aspx
0
Модератор
 Аватар для vxg
3406 / 2177 / 354
Регистрация: 13.01.2012
Сообщений: 8,444
05.04.2016, 06:54
Код ошибки = почему
0
0 / 0 / 0
Регистрация: 31.03.2016
Сообщений: 20
05.04.2016, 09:21  [ТС]
vxg, программа просто вылетает, а вылетает как только доходит до ф-ии connect.
0
Модератор
 Аватар для vxg
3406 / 2177 / 354
Регистрация: 13.01.2012
Сообщений: 8,444
05.04.2016, 09:31
Цитата Сообщение от Mixalich Посмотреть сообщение
просто вылетает
может ждет это хотя врядли
C++
1
socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)
Добавлено через 2 минуты
...и у меня даже ваш код не вылетает
1
0 / 0 / 0
Регистрация: 31.03.2016
Сообщений: 20
05.04.2016, 19:04  [ТС]
Цитата Сообщение от vxg Посмотреть сообщение
..и у меня даже ваш код не вылетает
Я переделал код, вылетать перестала, но почему-то не хочет connect-титься. Убил 2 часа - не понимаю, где ошибку допустил. Возвращает SOCKET_ERROR.

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
#include <winsock2.h>
#include <windows.h>
#include <stdio.h>
#include <ws2tcpip.h>
#include <string>
#include <cstring>
 
 
int main()
{
    WSADATA ws;
    SOCKET s, s1;
    
    WSAStartup(MAKEWORD(2,2), &ws);
 
    std::string str("Hello.");
    char * cstr = new char [str.length()+1];
    std::strcpy(cstr, str.c_str());
    struct sockaddr_in saddr;
    
    ZeroMemory (&saddr, sizeof (saddr));
    saddr.sin_family = AF_INET;
    saddr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
    saddr.sin_port = htons (80);
    
    if(INVALID_SOCKET == (s = socket(AF_INET, SOCK_STREAM, 0) ) ) {
        printf("INVALID_SOCKET");
    }
    
    if (SOCKET_ERROR == (connect(s, (sockaddr *) &saddr, sizeof (saddr)))) {
        perror("connect");
    }
 
    if (FAILED (listen (s, SOMAXCONN) ) ) { 
        printf("listen error");
    }
    
    int new_len = sizeof (saddr);
    ZeroMemory (&saddr, sizeof (saddr));
    if (FAILED (s1 = accept(s, (sockaddr* ) &saddr, &new_len))) {
      // Error
    }
 
    if(SOCKET_ERROR == ( send(s, cstr, str.length()+1, 0))) {
        printf("Send error");
        system("PAUSE");
    }
    return 0;
}
0
Модератор
 Аватар для vxg
3406 / 2177 / 354
Регистрация: 13.01.2012
Сообщений: 8,444
05.04.2016, 19:16
1 вы попрежнему даёте ноль в функцию создания сокета 2 с той стороны есть сервер? 3 выведите код ошибки и узнаете что оно хочет (не сокетеррор а именно код ошибки)
1
0 / 0 / 0
Регистрация: 31.03.2016
Сообщений: 20
05.04.2016, 19:44  [ТС]
vxg, perror пишет No error.

Добавлено через 2 минуты
А код WSAGetLastError() сейчас посмотрю, спасибо.

Добавлено через 12 минут
vxg, вывал это:
vxg,


10061
Connection refused.
No connection could be made because the target computer actively refused it. This usually results from trying to connect to a service that is inactive on the foreign host—that is, one with no server application running.


Добавлено через 1 минуту
Спасибо, попробую разобраться.
0
Модератор
 Аватар для vxg
3406 / 2177 / 354
Регистрация: 13.01.2012
Сообщений: 8,444
05.04.2016, 19:56
Серва нет наверное. Вы к чему вообще подключаетесь?
0
0 / 0 / 0
Регистрация: 31.03.2016
Сообщений: 20
05.04.2016, 20:02  [ТС]
Цитата Сообщение от vxg Посмотреть сообщение
вы попрежнему даёте ноль в функцию создания сокета
Если не подавать 0, то выдает ошибку протокол не поддерживается.

Добавлено через 2 минуты
Цитата Сообщение от vxg Посмотреть сообщение
Серва нет наверное. Вы к чему вообще подключаетесь?
Я просто думал взаимодействовать с браузером. Хочу принять его get запрос и ответить ему.

Добавлено через 53 секунды
Но походу вообще не то делаю. Снова за книги возьмусь.

Добавлено через 2 минуты
Я сам сервер пробую создать, локальный.
0
Модератор
 Аватар для vxg
3406 / 2177 / 354
Регистрация: 13.01.2012
Сообщений: 8,444
05.04.2016, 21:29
Сервер создаётся не так и на то он и серв чтобы отвечать браузеру а не обращаться к нему
0
0 / 0 / 0
Регистрация: 31.03.2016
Сообщений: 20
05.04.2016, 21:42  [ТС]
vxg, там bind нужно было использовать и несколько вещей подправить. Я книжку почитал - все получилось.

Можно еще 1 вопрос? Как отправить правильный POST запрос файл HTML ?
Я отправляю, send действует, но в браузере ничего не отображается.
0
Модератор
 Аватар для vxg
3406 / 2177 / 354
Регистрация: 13.01.2012
Сообщений: 8,444
05.04.2016, 21:48
Я не понимаю ваш вопрос
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.04.2016, 21:48
Помогаю со студенческими работами здесь

Написание сервера. Adaptive Communication Environment
Пишу сервер обработчик сообщений, сам алгоритм понятен, но возьникли трудности с winsock. Поэтому решил переключиться на ACE. Может кто...

Написание простейшего C++ сервера для исполнения команд
Мне нужно написать сервер на плюсах для получения, обработки и ответа на текстовые команды. Т.е я буду посылать серверу запрос с...

Написание простейшего драйвера для Windows
Всем привет, вопрос про написание простейшего драйвера для винды. Мне по учебе в вузе ещё вчера нужно было написать драйвер для...

Покажите пример простейшего сервера
Сервер должен слушать определённый порт, принимать данные обрабатывать и отправлять обратно. И работать должен сразу с несколькими...

Создание простейшего pop3 сервера
Стоит задача создать pop3 сервер. Прочитал документацию но ясней чего-то не стало. Может кто-нибудь сталкивался с такой задачей?


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru