Просмотр полной версии : C# Точная отправка сообщение на сервер
need_million
28.05.2010, 16:53
Мне требуется отправить запрос на сервер ровно в 10-00-00-(10\20 миллисек погрешность).
проблема в том что запрос может происходить разное время, 1-3 секунд.
можно как то отправлять весь запрос к проме последнего байта, без которого обработка не начнется ?
или как поступить в этой ситуации?
или как поступить в этой ситуации?
добавить таймер, который в нужное время сделает запрос
BrainDeaD
28.05.2010, 20:42
эл, ты не так понял. он хочет чтоб запрос пришёл на сервер в 10-00-00 с 10\20 миллисек погрешностью. а после отправки зазор в 1-3 сек. тоесть не подгадаешь время отправки.
Лично мое мнение: тебе не получится это сделать. Могут быть по одиночные успешные случаи, но и то не всегда.
need_million
29.05.2010, 09:48
так и спрашиваю, может есть вот такая система..что как то потоков отправляется запрос на сервер, и последний байт придерживается.
Последний байт тоже может получить сервак с задержкой в несколько миллисекунд. Все зависит от того, на сколько загружен твой канал и канал сервера.
need_million
29.05.2010, 11:55
ну так это уменьшает риск не попасть..
я понял что если смогу добиться хотя бы 1-3 сек это уже будет супер пупер.
так что с байтом последним можно?
хотя есть ещё трабл, сервак отрабатывает долго, наверное БД большая и пока он по ней проходится и все данные сверяет это тоже время которое вообще не реально высчитать=(
ну так это уменьшает риск не попасть..
я понял что если смогу добиться хотя бы 1-3 сек это уже будет супер пупер.
так что с байтом последним можно?
хотя есть ещё трабл, сервак отрабатывает долго, наверное БД большая и пока он по ней проходится и все данные сверяет это тоже время которое вообще не реально высчитать=(
Попробуй пропингуй сервер за 5-6 секунд до запроса и выполни запрос раньше на время пинга.
need_million
29.05.2010, 12:51
запрос идет столько же сколько и пинг?
как пинговать средствами C# ?
про пинг сам нашел ответ
using System.Net.NetworkInformation;
using System.Net;
Ping p = new Ping();
PingReply pr = p.Send(@"www.google.com")
IPStatus status = pr.Status; //IPStatus.Success
IPAddress ipAddr = pr.Address;
long pingTime = pr.RoundtripTime;
вот получил я с сайта "41" - что это значит, когда запрос отправлять?
на 41 милисекунду раньше
в 9.59.59 , а не в 10.0.0
need_million
29.05.2010, 13:59
буду пробывать.
Арендуй сервер в том же ДЦ и с него шли запрос ровно в 10.
need_million
29.05.2010, 15:00
я как маленький...а как узнать ДЦ ?
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot