2010-05-31 2 views
0

Использование Visual Studio 2005 Язык: C#протокол связи помощь

Новое в C#

У меня есть программное обеспечение, программное обеспечение должно взаимодействовать с GPRS устройствами. Поэтому я хочу написать протокол, TCP, UDP-код связи.

Может ли кто-нибудь дать некоторую идею для написания исходного кода и некоторого примера кода.

ответ

0

Когда вы говорите, что программное обеспечение должно взаимодействовать с GPRS устройствами, я буду считать, что вы имеете в виду они хотите связываться с eachother, используя TCP/IP, и тот факт, что две конечные точки подключены друг к другу с помощью GPRS-модемов, не должны ничего менять, кроме того факта, что вы должны иметь в виду ограниченную полосу пропускания и более медленные скорости передачи.

(Некоторые дополнительные работы это должно быть сделано при использовании GPRS-модемы, которые подключены к системе с помощью RS232 или USB интерфейсы, я предполагаю, что GPRS модемы с прямым разъемом RJ45 здесь)

Ваш первый шаг, чтобы убедиться, что вы понимаете основы TCP/IP и UDP/IP. Вы не указали, какие данные вы хотите обменять между приложениями, , так что нам остается очень мало идти вперед. Вам нужно решить, какие сообщения будут обмениваться приложениями , и вам нужно определить, будете ли вы использовать TCP/IP или UDP/IP для обмена этими сообщениями. Короче говоря, вы должны использовать только UDP, если вы можете позволить себе потерять несколько байтов на этом пути. (Например, неважно, потеряете ли вы несколько кадров во время потокового видео).

Как только вы решите, какие сообщения должны быть обменены, вам нужно будет определить, как вы их представляете. Оливье указал, что вы должны взять на ProtoBuf.Net, который представляет собой .NET-протокол буферов протокола Google.

Вы можете найти более подробную информацию по этой теме здесь: http://code.google.com/intl/nl-NL/apis/protocolbuffers/docs/overview.html

В основном это позволяет определить сообщения, как это:

message Person { 
    required string name = 1; 
    required int32 id = 2; 
    optional string email = 3; 

    enum PhoneType { 
    MOBILE = 0; 
    HOME = 1; 
    WORK = 2; 
    } 

    message PhoneNumber { 
    required string number = 1; 
    optional PhoneType type = 2 [default = HOME]; 
    } 

    repeated PhoneNumber phone = 4; 
} 

Который, с помощью ProtoBuf.Net, вы можете использовать в ваш код. Бинарный формат буферов протокола Google достаточно компактен, чтобы был передан через соединения GPRS.

Я надеюсь, что это дает вам несколько отправных точек, первого DESIDE, что вы хотите, а затем посмотреть в точки мы уже упоминали и не стесняйтесь создавать новые (более конкретные) вопросы в будущем