|
Подскажите пожалуйста, как замерить время доставки массива по winsock.
|
|||
---|---|---|---|
#18+
Подскажите пожалуйста, как замерить время доставки массива по winsock. Можно передать массив, затем принять его назад и измерить общее время таймером. Но, по идее, должен быть какой то стандартный метод замера времени передачи по winsock. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2013, 11:58 |
|
Подскажите пожалуйста, как замерить время доставки массива по winsock.
|
|||
---|---|---|---|
#18+
webber81как замерить время доставки массива по winsock Неужто Stopwatch настолько неудобен? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2013, 12:43 |
|
Подскажите пожалуйста, как замерить время доставки массива по winsock.
|
|||
---|---|---|---|
#18+
Если отослать данные на сервер и получить от него ответные данные, то Stopwatch вполне пригоден. Но как замерить время доставки данных, если данные надо только отправить на сервер, при этом не получая ответа? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2013, 15:27 |
|
Подскажите пожалуйста, как замерить время доставки массива по winsock.
|
|||
---|---|---|---|
#18+
webber81, ...так функция send (или какая?) возвращает же что-то после успешной отсылки данных? .. вот по этому событию и стопайте секундомер ... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2013, 15:44 |
|
Подскажите пожалуйста, как замерить время доставки массива по winsock.
|
|||
---|---|---|---|
#18+
webber81время доставки данных В таком случае никак, вы же не управляете транспортным протоколом. Единственный вариант сделать это с приемлемой точностью, это синхронизировать время на двух разных компьютерах и засечь время отправки и время приема. Разница - время в пути. Но этот путь из разряда фантастики, особенно если учесть, что Windows - не система реального времени. Правда Google реализовал эту фантастику в своей распределенной БД, но ведь для такой ерунды вы не будете использовать атомные часы? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2013, 16:30 |
|
Подскажите пожалуйста, как замерить время доставки массива по winsock.
|
|||
---|---|---|---|
#18+
webber81Если отослать данные на сервер и получить от него ответные данные, то Stopwatch вполне пригоден. Но как замерить время доставки данных, если данные надо только отправить на сервер, при этом не получая ответа? ну пусть сервер ответит что мол всё ок. всё принял. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2013, 17:23 |
|
Подскажите пожалуйста, как замерить время доставки массива по winsock.
|
|||
---|---|---|---|
#18+
carrotikwebber81, ...так функция send (или какая?) возвращает же что-то после успешной отсылки данных? .. вот по этому событию и стопайте секундомер ... А это будет время отправки или время доставки? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2013, 11:36 |
|
Подскажите пожалуйста, как замерить время доставки массива по winsock.
|
|||
---|---|---|---|
#18+
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. ... т.е. если принимающая сторона закрывает сокет штатно, то это время приема ... наверное ... ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2013, 11:49 |
|
Подскажите пожалуйста, как замерить время доставки массива по winsock.
|
|||
---|---|---|---|
#18+
Есть следующий метод: 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. Вопрос. Здесь замеряется время передачи с подтверждением целостности доставки? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2013, 11:59 |
|
Подскажите пожалуйста, как замерить время доставки массива по winsock.
|
|||
---|---|---|---|
#18+
webber81, Насколько я понимаю, здесь время записи в поток отправки, и не более. Может, помещение данных в локальный буфер. Меряйте так: Stopwatch.Start(), запись данных, ожидание ответа, Stopwatch.Stop(). Скорость - Stopwatch.ElapsedMilliseconds/2 Нужно прогнать это не один раз, чтобы получить среднее время. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2013, 12:09 |
|
Подскажите пожалуйста, как замерить время доставки массива по winsock.
|
|||
---|---|---|---|
#18+
webber81, как Вы это представляете, там же расчленёнка чистой воды ( на пакеты) мало того маршрутизация их может быть не идеальной, вторая часть тела может доставится раньше первой, да и сам пакет не константа, ибо принимающая сторона отвечает свободным размером буфера приема, и под него может измениться размер пакета для передачи, это все так условно и не информативно что даже не стоит этим заморачиваться, может поискать другой пинг? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2013, 12:27 |
|
Подскажите пожалуйста, как замерить время доставки массива по winsock.
|
|||
---|---|---|---|
#18+
Arm79webber81, Меряйте так: Stopwatch.Start(), запись данных, ожидание ответа, Stopwatch.Stop(). Скорость - Stopwatch.ElapsedMilliseconds/2 . Под ожиданием ответа понимается получение ответа самой функцией отправки, как предложил carrotik? Или же самому надо послать ответ с сервера? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2013, 13:13 |
|
Подскажите пожалуйста, как замерить время доставки массива по winsock.
|
|||
---|---|---|---|
#18+
Где-то в степиwebber81, может поискать другой пинг? Какой например? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2013, 13:15 |
|
Подскажите пожалуйста, как замерить время доставки массива по winsock.
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2013, 13:32 |
|
Подскажите пожалуйста, как замерить время доставки массива по winsock.
|
|||
---|---|---|---|
#18+
webber81 Под ожиданием ответа понимается получение ответа самой функцией отправки, как предложил carrotik? Или же самому надо послать ответ с сервера? .. так если у вас все же TcpClient, а на серверной стороне TcpListener, то логично будет с сервера послать подтверждение "Принял, понял, закрываемся" ... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2013, 13:38 |
|
Подскажите пожалуйста, как замерить время доставки массива по winsock.
|
|||
---|---|---|---|
#18+
webber81, встройте tracert очень информативно, можно и ping ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2013, 14:09 |
|
|
start [/forum/topic.php?fid=20&msg=38432672&tid=1403819]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
81ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 332ms |
total: | 511ms |
0 / 0 |