协议通信帮助
使用Visual Studio 2005 语言:C#协议通信帮助
一个新的C#
我有软件,该软件应与GPRS设备进行通信。所以我想写一个协议,TCP,UDP通信代码。
任何人都可以给出一些想法,编写一个源代码和一些示例代码也。
当你说该软件应与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你想要什么,然后看看我们已经提到 点,并随时在未来
发布新的(更具体的)问题
这只是一个“给我代码”问题。我会说你应该开始你的编程,并提出有关你即将到来的具体问题的问题。
为出发点,你应该看看到System.IO.Ports.SerialPort,System.Net.Sockets和Serialization(Binary,DataContract,ProtoBuf.Net)