Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Ошибка в выводе при использовании циклов for Всем привет! double amount; // сумма на счёте в конце года double principal = 24.00; // исходная сумма double rate; // процентная ставка cout << "Year" << setw(30) << "Amount on deposit" << endl; cout << fixed << setprecision(2); for (int i = 0; i < 2; i++) https://www.cyberforum.ru/ cpp-beginners/ thread1543110.html Актуальность разработки компьютерных программ C++
Пожалуйста,нужен текст и побольше,если можно. Актуальность разработки компьютерных программ на языке программирования высокого уровня.
C++ __thiscall и valist typedef void*(__thiscall *getValue)(void*, ...); Начинаю вызывать: getValue(this, 55); Компилятор пишет: Ошибка C2217 для "..." требуется "__cdecl" Окей иду в мсдн, читаю: "Соглашение о вызовах __thiscall используется для функций-членов. Оно по умолчанию используется функциями членами C++, в которых не используются переменные-аргументы. В соглашении о вызовах __thiscall вызываемый... https://www.cyberforum.ru/ cpp-beginners/ thread1543096.html C++ Последовательность в дробной части вещественного числа Верно ли, что первые n цифр дробной части заданного по-ложительного вещественного числа образуют возрастающую последовательность? Замучался уже. Нужна помощь https://www.cyberforum.ru/ cpp-beginners/ thread1543094.html
C++ Перемещение элементов итераторами
всем привет, можно ли как-то идя по коллекции итератором, переместить определенный(ые) эллементы в конец коллекции ? int main() { vector<int> t = {1,2,3,3,3,4,5}; vector<int>::iterator it = t.begin(); for( ; it != t.end(); t++) { if( *it == 3 ) //переместить в конец }
C++ Определить расстояние между автомобилями через Т часов Скорость первого автомобиля V1 км/ч, второго — V2 км/ч, расстояние между ними S км. Определить расстояние между ними через T часов, если автомобили первоначально движутся навстречу друг другу. Данное расстояние равно модулю разности начального расстояния и общего пути, проделанного автомобилями; общий путь = время • суммарная скорость.Дайте код для С++ нито я сделал на паскале а вот с С не... https://www.cyberforum.ru/ cpp-beginners/ thread1543078.html
C++ Передача потока как параметра в функцию Дорогие форумчане! Повторяю пример из книжки, пока остановился из-за ошибки. //Программа "Функция ввода вопросов, объявление" #include <iostream> #include <fstream> #include <conio.h> #include <string> #include <windows> #include <vector> #include <stdlib.h> https://www.cyberforum.ru/ cpp-beginners/ thread1543072.html Happy Birthday с beep() C++
может у кого есть эта мелодия, или знает как написать
C++ Ошибка в подсчёте кол-ва одинаковых цифр натурального чила n (циклы) https://www.cyberforum.ru/ cpp-beginners/ thread1543021.html
Написал прогу. Вот условие:" Дано натуральное n. Верно ли, что это число содержит более k одинаковых цифр?" Проблема в том что неправильно считает число повторяющихся цифр. При вводе n=11111 выдаёт h=15 повтор. цифр. Need HELP! Исходник: #include <iostream> #define _USE_MATH_DEFINES #include <math.h> using namespace std;
C++ Специализации шаблонов класса Из книги Однако при специализации шаблона класса необходимо специализировать все его функции-члены. Хотя можно специализировать и отдельную функцию-член, после этого нельзя будет специализировать целый класс. Просьба пример показать. А-то не очень понятно. Как-то очень обобщенно. https://www.cyberforum.ru/ cpp-beginners/ thread1542996.html
C++ Составляют ли три числа арифметическую прогрессию
Даны три числа. Определите, можно ли из них составить арифметическую прогрессии.
C++ Error C2062: тип «char» не требуется https://www.cyberforum.ru/ cpp-beginners/ thread1542863.html
Подскажите пожалуйста как исправить. Когда программа была в одном файле, все прекрасно работало, но вот после разделения на файлы MVS стал ругаться на Заголовочный файл(creatematrix.h(3): error C2062: тип «char» не требуется,подчеркивает char говорит нужен идендификатор), не пойму что не так //файл creatematrix.h #ifndef creatematrix #define creatematrix void creatematrix(char, char);...
81 / 25 / 19
Регистрация: 27.10.2014
Сообщений: 420
0

Сервер на сокетах - C++ - Ответ 8143191

02.10.2015, 18:10. Показов 1891. Ответов 5
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Задача написать сервер принимающий сообщения со всех клиентов и выводящий их в консоль.
Что написал я:
Кликните здесь для просмотра всего текста
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#define _WINSOCK_DEPRECATED_NO_WARNINGS
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <sstream>
#include <string>
#include <list>
 
#define MAX_BUFFER 1024
#define _WIN32_WINNT 0x501
 
#include <WinSock2.h>
#include <WS2tcpip.h>
 
#pragma comment(lib, "Ws2_32.lib")
 
using std::cerr;
using std::cout;
using std::string;
using std::endl;
using std::list;
 
int main()
{
    //getIP();
    WSADATA wsaData;
 
    int result = WSAStartup(MAKEWORD(2, 2), &wsaData);
 
    if (result != 0)
    {
        cerr << "WSAStartup failed: " << result << "\n";
        return result;
    }
 
    int listen_socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
 
    if (listen_socket == INVALID_SOCKET)
    {
        cerr << "error at socket: " << WSAGetLastError() << "\n";
        WSACleanup();
        return 1;
    }
 
    SOCKADDR_IN server;
    server.sin_family = AF_INET;
    server.sin_port = htons(5000);
    server.sin_addr.S_un.S_addr = INADDR_ANY;
 
    result = bind(listen_socket, (SOCKADDR*)&server, sizeof(server));
 
    if (result == SOCKET_ERROR)
    {
        cerr << "bind failed with error: " << WSAGetLastError() << "\n";
        closesocket(listen_socket);
        WSACleanup();
        return 1;
    }
 
    if (listen(listen_socket, SOMAXCONN) == SOCKET_ERROR)
    {
        cerr << "listen failed with error: " << WSAGetLastError() << "\n";
        closesocket(listen_socket);
        WSACleanup();
        return 1;
    }
 
    char buf[MAX_BUFFER];
    list<int> client_list;
    int client_socket = INVALID_SOCKET;
 
    while (1)
    {
        client_socket = accept(listen_socket, NULL, NULL);                //1
        if (client_socket == INVALID_SOCKET)
        {
            cerr << "accept failed: " << WSAGetLastError() << "\n";
            closesocket(listen_socket);
            WSACleanup();
            return 1;
        }       
 
        result = recv(client_socket, buf, MAX_BUFFER, 0);
 
        if (result == SOCKET_ERROR)
        {
            cerr << "recv failed: " << result << "\n";
            closesocket(client_socket);
        }
        if (result == 0)
        {
            cerr << "connecting closed...\n";
        }
        else if (result > 0)
        {
            buf[result] = '\0';
 
            cout << buf << endl;
 
            string response = "client connect!";
            result = send(client_socket, response.c_str(), response.length(), 0);
 
            if (result == SOCKET_ERROR)
            {
                cerr << "send failed: " << WSAGetLastError() << "\n";
            }
        }
        closesocket(client_socket);
    }
 
    closesocket(listen_socket);
    //freeaddrinfo(addr);
    WSACleanup();
 
    return 0;

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

Вернуться к обсуждению:
Сервер на сокетах C++
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.10.2015, 18:10
Готовые ответы и решения:

Сервер на сокетах: Нельзя повторно отправить данные на сервер
Делаю сервер на сокетах. Первая отправка данных на сервер проходит успешно, сервер получает и...

Сервер на сокетах: невозможно повторно запустить сервер
пишу сервер на сокетах, но надо не в консоли, а на Windows Forms, значит по кнопке у меня сервер...

Многопоточный сервер на сокетах
Задание: Написать многопоточный сервер на сокетах.Схема работы на подобии чата: клиент отправляет...

Сервер на сокетах TCP
Здравствуйте.Пробую по примеру сделать простенький чат на TCP. В клиенте отсылаю сообщения, но до...

5
02.10.2015, 18:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.10.2015, 18:10
Помогаю со студенческими работами здесь

Клиент-сервер на сокетах
Задача стоит в написании некого подобия чата. Получение на сервер работает, но хотелось бы сделать...

FTP сервер на сокетах
Есть необходимость портировать ftp сервер на осрв с сокетами. В данном случае это контроллер Tiva C...

Сервер на сокетах с многопоточностью
подскажите пожалуйста что я может делаю не так хочу сделать сервер что бы к нему могли подключатся...

Многоклиентный сервер на сокетах
Нужен пример того как правильно обрабатывать клиентов и реагировать на ошибки при разрыве...

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