2010-05-31 131 views
0

使用Visual Studio 2005 语言:C#协议通信帮助

一个新的C#

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

任何人都可以给出一些想法,编写一个源代码和一些示例代码也。

回答

0

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

(一些额外的工作确实有当您使用的连接到您的系统GPRS调制解调器使用RS232或USB接口,我假设GPRS调制解调器与此有直接的RJ45连接器做)

你的第一个一步是确保您了解TCP/IP和UDP/IP的基础知识。 你没有提及你想在应用程序之间交换什么样的数据, ,所以我们很少继续下去。您需要确定应用程序将交换的消息类型,并且您需要确定是使用TCP/IP还是UDP/IP 来交换这些消息。长话短说,你应该只使用UDP,如果你能承受在这个过程中损失几个字节。 (例如,如果在流式传输视频时丢失了几帧,则无关紧要)。

一旦你决定了应用程序应该交换什么类型的消息,你需要确定你将如何表示它们。 Olivier指出你应该看看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的手段,就可以使用你的代码。 谷歌协议缓冲区的二进制格式足够紧凑,通过GPRS连接传输 。

我希望这给你一些出发点, 第一deside你想要什么,然后看看我们已经提到 点,并随时在未来

发布新的(更具体的)问题