powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Подскажите пожалуйста, как замерить время доставки массива по winsock.
17 сообщений из 17, страница 1 из 1
Подскажите пожалуйста, как замерить время доставки массива по winsock.
    #38432565
webber81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите пожалуйста, как замерить время доставки массива по winsock.
Можно передать массив, затем принять его назад и измерить общее время таймером.
Но, по идее, должен быть какой то стандартный метод замера времени передачи по winsock.
...
Рейтинг: 0 / 0
Подскажите пожалуйста, как замерить время доставки массива по winsock.
    #38432672
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
webber81как замерить время доставки массива по winsock

Неужто Stopwatch настолько неудобен?
...
Рейтинг: 0 / 0
Подскажите пожалуйста, как замерить время доставки массива по winsock.
    #38433009
webber81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если отослать данные на сервер и получить от него ответные данные, то Stopwatch вполне пригоден.
Но как замерить время доставки данных, если данные надо только отправить на сервер, при этом не получая ответа?
...
Рейтинг: 0 / 0
Подскажите пожалуйста, как замерить время доставки массива по winsock.
    #38433035
carrotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
webber81,

...так функция send (или какая?) возвращает же что-то после успешной отсылки данных? .. вот по этому событию и стопайте секундомер ...
...
Рейтинг: 0 / 0
Подскажите пожалуйста, как замерить время доставки массива по winsock.
    #38433130
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
webber81время доставки данных

В таком случае никак, вы же не управляете транспортным протоколом. Единственный вариант сделать это с приемлемой точностью, это синхронизировать время на двух разных компьютерах и засечь время отправки и время приема. Разница - время в пути. Но этот путь из разряда фантастики, особенно если учесть, что Windows - не система реального времени. Правда Google реализовал эту фантастику в своей распределенной БД, но ведь для такой ерунды вы не будете использовать атомные часы?
...
Рейтинг: 0 / 0
Подскажите пожалуйста, как замерить время доставки массива по winsock.
    #38433260
beg-in-er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
webber81Если отослать данные на сервер и получить от него ответные данные, то Stopwatch вполне пригоден.
Но как замерить время доставки данных, если данные надо только отправить на сервер, при этом не получая ответа?

ну пусть сервер ответит что мол всё ок. всё принял.
...
Рейтинг: 0 / 0
Подскажите пожалуйста, как замерить время доставки массива по winsock.
    #38435211
webber81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
carrotikwebber81,

...так функция send (или какая?) возвращает же что-то после успешной отсылки данных? .. вот по этому событию и стопайте секундомер ...

А это будет время отправки или время доставки?
...
Рейтинг: 0 / 0
Подскажите пожалуйста, как замерить время доставки массива по winsock.
    #38435226
carrotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
webber81carrotikwebber81,

...так функция send (или какая?) возвращает же что-то после успешной отсылки данных? .. вот по этому событию и стопайте секундомер ...

А это будет время отправки или время доставки?

... я в winsock-ах ни бум-бум, но гугль говорит следующее:

A "normal" disconnect is when the receiving party calls closesocket() on its end of the connection to send a FIN packet to the sending party. When send() detects the FIN, it knows the connection has been disconnected gracefully and should return 0 to notify your code.

... т.е. если принимающая сторона закрывает сокет штатно, то это время приема ... наверное ...
...
Рейтинг: 0 / 0
Подскажите пожалуйста, как замерить время доставки массива по winsock.
    #38436629
webber81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть следующий метод:

private void SendData(string data)
{
StreamWriter writer = new StreamWriter(client.GetStream());

stopWatch.Start();

writer.Write(data + "\n\r");
writer.Flush();

stopWatch.Stop();
TimeSpan ts = stopWatch.Elapsed;
string elapsedTime = String.Format("{0}", ts.TotalMilliseconds);
DisplayText("milliseconds from send to recv: " + elapsedTime + "\r\n");
stopWatch.Reset();
}

где client экземпляр класса TcpClient.
Вопрос.
Здесь замеряется время передачи с подтверждением целостности доставки?
...
Рейтинг: 0 / 0
Подскажите пожалуйста, как замерить время доставки массива по winsock.
    #38436652
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
webber81,

Насколько я понимаю, здесь время записи в поток отправки, и не более. Может, помещение данных в локальный буфер.

Меряйте так: Stopwatch.Start(), запись данных, ожидание ответа, Stopwatch.Stop(). Скорость - Stopwatch.ElapsedMilliseconds/2

Нужно прогнать это не один раз, чтобы получить среднее время.
...
Рейтинг: 0 / 0
Подскажите пожалуйста, как замерить время доставки массива по winsock.
    #38436679
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
webber81,
как Вы это представляете, там же расчленёнка чистой воды ( на пакеты) мало того маршрутизация их может быть не идеальной,
вторая часть тела может доставится раньше первой, да и сам пакет не константа, ибо принимающая сторона отвечает
свободным размером буфера приема, и под него может измениться размер пакета для передачи, это все так условно и не информативно
что даже не стоит этим заморачиваться, может поискать другой пинг?
...
Рейтинг: 0 / 0
Подскажите пожалуйста, как замерить время доставки массива по winsock.
    #38436797
webber81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Arm79webber81,
Меряйте так: Stopwatch.Start(), запись данных, ожидание ответа, Stopwatch.Stop(). Скорость - Stopwatch.ElapsedMilliseconds/2
.
Под ожиданием ответа понимается получение ответа самой функцией отправки, как предложил carrotik?
Или же самому надо послать ответ с сервера?
...
Рейтинг: 0 / 0
Подскажите пожалуйста, как замерить время доставки массива по winsock.
    #38436800
webber81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Где-то в степиwebber81,
может поискать другой пинг?

Какой например?
...
Рейтинг: 0 / 0
Подскажите пожалуйста, как замерить время доставки массива по winsock.
    #38436838
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
webber81Где-то в степиwebber81,
может поискать другой пинг?

Какой например?

Ээээ... Ping Class Не?
...
Рейтинг: 0 / 0
Подскажите пожалуйста, как замерить время доставки массива по winsock.
    #38436857
carrotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
webber81 Под ожиданием ответа понимается получение ответа самой функцией отправки, как предложил carrotik?
Или же самому надо послать ответ с сервера?

.. так если у вас все же TcpClient, а на серверной стороне TcpListener, то логично будет с сервера послать подтверждение "Принял, понял, закрываемся" ...
...
Рейтинг: 0 / 0
Подскажите пожалуйста, как замерить время доставки массива по winsock.
    #38436920
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
webber81,
встройте tracert очень информативно, можно и ping
...
Рейтинг: 0 / 0
Подскажите пожалуйста, как замерить время доставки массива по winsock.
    #38436950
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Подскажите пожалуйста, как замерить время доставки массива по winsock.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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