2015-07-21 2 views
0

Я пишу сетевое приложение.speed очень важно в моем приложении, я посылаю байт через порт Ethernet, и скорость в этом случае составляет около 350 us, см. Ниже:Как отправить один бит (без байта) через Ethernet-порт

http://i59.tinypic.com/2zgu8id.jpg

Я хочу послать немного через порт Ethernet, чтобы уменьшить скорость, у меня есть ниже вопрос:

1 Будет ли это повлияет на скорость? Как это сделать? На веб-сайте msdn нет такой вещи.

https://msdn.microsoft.com/en-us/library/system.net.sockets.socket%28v=vs.110%29.aspx

2- ли лучше использовать много окон приложения для многих отправить байт?

+2

Отправка бит за бит вместо байта на байт не обязательно увеличивает скорость. Также многократные действия, которые работают в одной и той же сети, также не обязательно увеличивают скорость. Я рекомендую сначала сжать файлы, которые вы хотите отправить, так что у вас меньше данных для отправки и, следовательно, они будут отправляться быстрее, а затем принимающая сторона должна снова распаковать данные. Это означает большую вычислительную мощность, необходимую вашему приложению, но меньше времени, необходимого для сбора и приема данных. –

+1

Самый маленький блок выделения - это байт, поэтому вы не можете отправить только немного –

+0

Предположим, вы могли. Насколько быстрее это будет? и какое хорошее применение оно имеет? – Amit

ответ

1

Наряду с каждым отправляемым сообщением заголовок включен, содержащий, например, адрес назначения. Без этой информации ваше сообщение никогда не прибудет в пункт назначения.

Типичный заголовок IPv4 составляет 20 байтов. Поэтому, даже если бы это было возможно, 8 бит не на 700% больше данных, чем 1 бит, но на 33% больше.

Поскольку каждое сообщение содержит такой заголовок, вы должны попытаться включить как можно больше данных, чтобы уменьшить количество сообщений, которые необходимо отправить.

Если этот ответ не поможет, вы можете включить свою конечную цель, чего вы пытаетесь достичь?

+0

моей конечной целью является считывание данных линейной сканирующей камеры и обработка данных и отправка вывода, у меня нет проблем с чтением данных кадра камеры, моя проблема - большое время для данных процесса приложением Windows, это время отправки - 350 нам хорошо, но я хочу отправить 40 выходных команд, которые становятся примерно 16 мс, что плохо, хорошее время для отправки 40 выход для меня - 2 мс. У меня есть данные о кадрах потерь в течение большого времени – mohammad2050

+0

Я не понимаю, почему вам нужно будет отправить один бит, тогда вы можете получить только от отправки большего количества данных одновременно. Кроме того, имеет значение порядок, в котором эти команды получены? (С UDP они могут поступать в любом порядке) –

+0

ОК и большое спасибо, поэтому я использую TPL DataFlow для обработки данных в виде потока. – mohammad2050

Смежные вопросы