使用Visual Studio 2005 语言:c#
c#的新手
我有软件,软件应该与gprs设备通信。所以我想写一个协议,TCP,UDP通信代码。
任何人都可以为编写源代码和一些示例代码提供一些想法。
答案 0 :(得分:0)
这只是一个“给我代码”的问题。我会说你应该开始编程并询问有关你即将提出的具体问题的问题。
作为起点,您应该查看System.IO.Ports.SerialPort,System.Net.Sockets和Serialization(Binary,DataContract,ProtoBuf.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连接传输。
我希望这会给你一些起点, 首先要求你想要什么,然后看看我们提到的要点 并随时发布新的(更具体的)问题