使用Visual Studio 2005 語言:C#協議通信幫助
一個新的C#
我有軟件,該軟件應與GPRS設備進行通信。所以我想寫一個協議,TCP,UDP通信代碼。
任何人都可以給出一些想法,編寫一個源代碼和一些示例代碼也。
使用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)