协议通信帮助

时间:2010-05-31 06:14:27

标签: c# .net visual-studio-2005

使用Visual Studio 2005 语言:c#

c#的新手

我有软件,软件应该与gprs设备通信。所以我想写一个协议,TCP,UDP通信代码。

任何人都可以为编写源代码和一些示例代码提供一些想法。

2 个答案:

答案 0 :(得分:0)

这只是一个“给我代码”的问题。我会说你应该开始编程并询问有关你即将提出的具体问题的问题。

作为起点,您应该查看System.IO.Ports.SerialPortSystem.Net.SocketsSerializationBinaryDataContractProtoBuf.Net

答案 1 :(得分:0)

当您说软件应该与GPRS设备通信时, 我将假设你的意思是他们想要使用TCP / IP与彼此进行通信,并且两个端点通过GPRS调制解调器相互连接的事实应该几乎没有区别,除非您必须记住这一事实有限的带宽和较慢的传输速度。

(当您使用通过RS232或USB接口连接到系统的GPRS调制解调器时,必须完成一些额外的工作,我假设GPRS调制解调器带有直接RJ45连接器)

您的第一步是确保您了解TCP / IP和UDP / IP的基础知识。 您没有提到要在应用程序之间交换哪种数据, 所以这让我们很少继续下去。你需要决定什么类型的消息 应用程序将进行交换,您需要确定是否使用TCP / IP或UDP / IP 交换这些消息。长话短说,你应该只使用UDP,如果你能负担得起在途中丢失几个字节。 (例如,在流式传输视频时丢失几帧并不重要)。

一旦你确定了应用程序应该交换什么样的消息, 你需要确定如何代表他们。奥利维尔指出你应该服用 看一下ProtoBuf.Net,它是Google Protocol Buffers的.NET实现。

您可以在此处找到有关此主题的更多信息: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 Protocol Buffers的二进制格式非常紧凑 通过GPRS连接传输。

我希望这会给你一些起点, 首先要求你想要什么,然后看看我们提到的要点 并随时发布新的(更具体的)问题