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

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

02.04.2016, 13:23. Показов 1915. Ответов 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
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
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
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
03.04.2016, 16:39
Тут телепатов нет. Покажите код и чего вы него хотите?
0
0 / 0 / 0
Регистрация: 31.03.2016
Сообщений: 20
03.04.2016, 17:11  [ТС]
vxg, мне код особо не нужен, я сам напишу, за реализацию вашего кода спасибо.

Я просто не понимаю, КАК сделать, чтоб через браузер(клиент) передать GET запрос ЛОКАЛЬНОМУ серверу, а сервер должен ответить и в браузере должны отразиться результаты.
0
Модератор
 Аватар для vxg
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
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
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
05.04.2016, 06:54
Код ошибки = почему
0
0 / 0 / 0
Регистрация: 31.03.2016
Сообщений: 20
05.04.2016, 09:21  [ТС]
vxg, программа просто вылетает, а вылетает как только доходит до ф-ии connect.
0
Модератор
 Аватар для vxg
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
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
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
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
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
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
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
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
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
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
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru