|
half-horse half-gateway
117 / 83 / 43
Регистрация: 10.05.2016
Сообщений: 563
|
|
.NET 4.x TcpClient ожидание обработки сообщения со стороны сервера14.09.2021, 20:43. Показов 2014. Ответов 5
Добрый день. Имеется сервер, организованный с помощью
TcpListener, и клиент, организованный с помощью TcpClient. Данных от клиента серверу пересылается много, поэтому делается это построчно. Дело в том, что при пересылке сообщения от клиента к серверу последнему нужно некоторое время для обработки данных (вставляет данные из полученного сообщения в БД). Если поставить какой-нибудь примитивный Thread.Sleep(1000) перед каждым отправлением данных, то тогда сервер успевает за клиентом, но этот метод мне крайне не нравится. Как заставить их синхронизироваться друг с другом?
0
|
|
| 14.09.2021, 20:43 | |
|
Ответы с готовыми решениями:
5
Отправка большого сообщения через TCPClient Получение размерности получаемого сообщения через TcpClient RadStudio XE2 отсылка сообщения от TCPServer к TCPClient |
|
296 / 120 / 33
Регистрация: 06.03.2016
Сообщений: 453
|
|
| 14.09.2021, 22:37 | |
|
Получать данные можно в одной Task, а обрабатывать их в другой.
0
|
|
|
304 / 186 / 45
Регистрация: 05.07.2018
Сообщений: 580
|
|
| 14.09.2021, 22:45 | |
|
BlackStoneBlack, Использовать потокобезопасную очередь сообщений и реализовать пул обработчиков, который будет ее разгребать
1
|
|
|
half-horse half-gateway
117 / 83 / 43
Регистрация: 10.05.2016
Сообщений: 563
|
|
| 15.09.2021, 22:15 [ТС] | |
|
aenye, ну, перед отправкой основного сообщения я сделал отправку с сервера на клиент сообщения размером в один байт (генерируется значение случайно от 1 до 255). Вроде как сработало. Также пришлось через отправку этого же байта отправлять сообщение о том, что клиент будет отключен (приходит значение 0), потому что, как оказалось, через
TcpClient.Connected невозможно отследить отключение клиента со стороны сервера. Если честно, после C++ Qt это дело даже немного расстроило, в последнем как-то повеселее с сокетами
0
|
|
|
304 / 186 / 45
Регистрация: 05.07.2018
Сообщений: 580
|
|
| 15.09.2021, 22:46 | |
|
0
|
|
|
half-horse half-gateway
117 / 83 / 43
Регистрация: 10.05.2016
Сообщений: 563
|
|
| 22.09.2021, 08:43 [ТС] | |
|
aenye, данные отправляются построчно, и сервер в ином случае просто не успевает прочитать строку, перед тем, как клиент пошлет ещё одну, в итоге сообщения наслаиваются друг на друга.
0
|
|
| 22.09.2021, 08:43 | |
|
Помогаю со студенческими работами здесь
6
TcpClient отключится от сервера Отключение TcpClient от сервера Прием информации с сервера (TcpClient) TcpClient Приходит не корректный ответ от сервера Как получить ответ от сервера (tcpclient)? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|