powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Сокеты
12 сообщений из 12, страница 1 из 1
Сокеты
    #34129154
Pasha_o
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужно сделать обмен данными между двумя компами по локальной сети. Чтобы это сделать я использую сокеты. Есть программа "Передатчик"(устанавливает соединение и передает данные) и "Приемник"(разрешает соединение и принимает данные). Ситуация такая, если я устанавливаю соединение в передатчике, в приемнике разрешаю соединение, НО ДАННЫЕ НЕ ПРИНИМАЮ, то после того как мы передали декоторый объем данных с помощью функции Send сдедующая попытка передать данные функцией Send вызывает ошибку. Возникает вопрос, куда идут данные, которые мы передаем, но не принимаем? Наверное в какой-то буффер?
...
Рейтинг: 0 / 0
Сокеты
    #34129209
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В системные буферы. Они могут наполняться до предела.
...
Рейтинг: 0 / 0
Сокеты
    #34129350
Pasha_o
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AkhВ системные буферы. Они могут наполняться до предела.

А как определить размер системного буфера?
...
Рейтинг: 0 / 0
Сокеты
    #34129361
Pasha_o
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и сколько свободного места там осталось?
...
Рейтинг: 0 / 0
Сокеты
    #34129392
pandrew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Pasha_oВозникает вопрос, куда идут данные, которые мы передаем, но не принимаем? Наверное в какой-то буффер?
Данные просто не передаются, но из-за асинхронности сокетов ошибка фиксируется не сразу. Если бы данные где-то копились, это был бы легкий способ подвесить сервер из клиента.
...
Рейтинг: 0 / 0
Сокеты
    #34129428
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pasha_o AkhВ системные буферы. Они могут наполняться до предела.

А как определить размер системного буфера?

А оно тебе надо?
...
Рейтинг: 0 / 0
Сокеты
    #34129438
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pandrew Pasha_oВозникает вопрос, куда идут данные, которые мы передаем, но не принимаем? Наверное в какой-то буффер?
Данные просто не передаются, но из-за асинхронности сокетов ошибка фиксируется не сразу. Если бы данные где-то копились, это был бы легкий способ подвесить сервер из клиента.

Откуда же забираются данные при вызове recv? :)
...
Рейтинг: 0 / 0
Сокеты
    #34129520
pandrew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AkhОткуда же забираются данные при вызове recv? :)
Честно говоря recv не пользовал, но с сокетами дело имел плотно.
Кратко: установка соединения - разрешение адреса через DNS и обмен несколькими пакетами. Передача с клиента: отправка пакетов по текущему соединению, с подтверждением о приеме, если адресат не принимает в течение таймаута, пакет просто теряется, соединение на клиенте признается разорванным.
...
Рейтинг: 0 / 0
Сокеты
    #34129545
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pandrew AkhОткуда же забираются данные при вызове recv? :)
Честно говоря recv не пользовал, но с сокетами дело имел плотно.
Кратко: установка соединения - разрешение адреса через DNS и обмен несколькими пакетами. Передача с клиента: отправка пакетов по текущему соединению, с подтверждением о приеме, если адресат не принимает в течение таймаута, пакет просто теряется, соединение на клиенте признается разорванным.

Ну, собственно, сокеты тут ни при чем. Любой интерфейс обмена данными. Пока программа не вызвала функцию получения пакета, сам пакет находится в системном буфере.
...
Рейтинг: 0 / 0
Сокеты
    #34129644
pandrew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AkhНу, собственно, сокеты тут ни при чем...Да нет, разговор именно про сокеты. AkhПока программа не вызвала функцию получения пакета, сам пакет находится в системном буфере.В буфере сервера? Но ПК м.б. вообще выключен, или провод из сервера выдернут.
На клиенте действительно существует небольшая буферизация перед отправкой, которая в частности приводит к нарезке посылки на пакеты, но для программиста она прозрачна.
...
Рейтинг: 0 / 0
Сокеты
    #34129697
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pandrew AkhНу, собственно, сокеты тут ни при чем...Да нет, разговор именно про сокеты. AkhПока программа не вызвала функцию получения пакета, сам пакет находится в системном буфере.В буфере сервера? Но ПК м.б. вообще выключен, или провод из сервера выдернут.
На клиенте действительно существует небольшая буферизация перед отправкой, которая в частности приводит к нарезке посылки на пакеты, но для программиста она прозрачна.

1. Принцип один.
2. Тогда не будет ответа от севера.
3. Эта тоже.
...
Рейтинг: 0 / 0
Сокеты
    #34129781
Pasha_o
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Еще один вопрос. Решил отслеживать какие же ошибки возникают при передачи. Почему если написать так:
try
{
p_transmitterSocket->Send(TrBuffer, Size);
....
}
catch (...)
{
....
}

то при возникновении ошибки выполнения функции Send, программа сразу выдает сообщение об этом, а не переходит в блок catch?
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Сокеты
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]