Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ FPS средствами C++ https://www.cyberforum.ru/ cpp-beginners/ thread925959.html
Здравствуйте. Подскажите, как вывести FPS поверх окна (игры), например, как это делает FRAPS. Заранее спасибо.
Задача преобразования числа в предложение | обработка потока ввода C++
Здравствуйте. Я нашел варианты решения в прикрепленной теме, но интересует вопрос следующего содержания: существуют ли метод "выхвачивания" цифр из потока cin таким образом, чтобы при вводе числа...
Алгоритм хэширования MD5 C++
Мне дали задачу. Программа должна делать такое: Юзер вводит цифры или буквы Программа делает из них MD5 хэш (т.е. хэширует эти символы) :) Так вот, я в интернете нашел примерный алгоритм MD5...
C++ Решение задачи симплекс методом Всем доброго времени суток. Помогите, пожалуйста, при компиляции выдает такую ошибку:" fatal error C1083: Не удается открыть файл включение: iostream.h: No such file or directory" Заранее спасибо.... https://www.cyberforum.ru/ cpp-beginners/ thread925942.html
C++ Как устроен std::string https://www.cyberforum.ru/ cpp-beginners/ thread925940.html
Добрый день! Недавно я задался таким вопросом - есть класс std::string, который подразумевает вставку\удаление символов и подстрок, а так же других операция. И в основе лежит какая-то структура...
любителям критики C++
AI_city.h // --------------------------------------------------------------------------- #ifndef AI_cityH #define AI_cityH #include <iostream> #include <fstream> #include <string> #include...
C++ Перегруженный оператор вывода
Есть базовый класс Точка и его наследник Круг. Как в Круге использовать operator<< для Точки? Надо вывести координаты центра круга class CPoint { friend std::ostream &operator<<(std::ostream...
C++ Файловый ввод Дело в том, что у меня во всех программах почему то не работает scanf в циклах for. Напhимер: for(int index = 0; index<b.size(); ++index) { scanf("%d", b); } b это вектор чисел. Программы... https://www.cyberforum.ru/ cpp-beginners/ thread925924.html
C++ Программа которая отправляет файл на почту https://www.cyberforum.ru/ cpp-beginners/ thread925916.html
Я вот думаю, сложно ли написать программу который будет отправлять какой-то конкретный файл юзера который её запустит на почту? P.S. Это не незаконные дела, всё законно, по правилам)Просто...
C++ Просрочен лимит времени Я решал задачу, вот она: Проблема в том, что я когда заносил в массив данные через scanf, то она выполнялась 2,5 секунды, а когда я использовал cin, то где-то 0.363 миллисекунды. В чем дело. Говорят... https://www.cyberforum.ru/ cpp-beginners/ thread925900.html
2 / 2 / 0
Регистрация: 08.05.2013
Сообщений: 14
0

(WinSock) Условие прихода пакета данных

20.07.2013, 00:07. Просмотров 2285. Ответов 6
Метки (Все метки)

Допустим, я хочу написать чат на WinSock. Мне нужно, чтобы при приходе пакета специально отведенный буфер заполнялся данными, после чего выводился на экран в виде текста.
Как определить, пришел ли пакет с данными? Есть ли специальное условие? На подобии " if( если пришел пакет с сервера ) { код }

Сработает-ли такое условие?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
while(true) {
recv(//чтение
             SSock,//сокет
             recv_data,//буфер куда попадут данные
             1024,//размер буфера чтения - сколько считать
             0//делаем ее аналогичной как функция read
             );
 
        if( recv_data[0] == '[' ) { // Если первый символ в буфере данных, пришедших с сервера равен началу любого сообщения... ( [???] ??? ) 
            recv_dataString = gcnew String(recv_data); // передаем строке значение буфера
            textBox4->Text = textBox4->Text + recv_dataString + Environment::NewLine; //Выводим буфер (в виде строки) в текстбокс
            recv_data[0] = '?'; //Заменяем символ, чтобы последнее сообщение, пришедшее с сервера, не выводилось циклично
            }
}
Если я правильно понимаю, пришедший однажды пакет с данными ( recv() ) заполнит буфер единожды, и после повторной проверки ( если запихнуть этот код в цикл ( а надо? ) ) он не будет заполнять буфер последними данными что он получил ( не будет выводить последнее сообщение до бесконечности ). Верно?

Если не правильно понял механику того, как это работает, напишите.

Вернуться к обсуждению:
(WinSock) Условие прихода пакета данных
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.07.2013, 00:07
Готовые ответы и решения:

Порядок прихода данных
Всем привет. Несколько не стандартный вопрос. Сорри, если не том разделе. В массив приходят данные...

Вывод даты прихода товаров из данных регистра бухгалтерии.
Добрый день! Подскажите пожалуйста, как-то можно вывести дату прихода(расхода) по каждой...

Прием данных Winsock и преобразование данных Byte в String
VB.NET Здравствуйте! Вопрос! Есть обьект winsock для обмена сообщениями tcp\ip....

Прием данных в WinSock
Здравствуйте. Такой вопрос, в Winsock2_DataArrival (в самом низу кода) приходят данные с клиента...

6
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.