2014-09-25 111 views
-1

比方說,我有一個客戶端和一臺服務器。我想向服務器發送兩個數組:發送multipe數組到「服務器」(C#)

  1. 用戶名(這是「一」,在這個例子中)
  2. 密碼(這是「B」,在這個例子中)

stream.Write (userd, 0, userd.GetLength); 
stream.Write (passd, 0, passd.GetLength); 

服務器側是::「使用該代碼發送到服務器M

的問題是,輸出I GE t在服務器端是「ab」用戶和密碼,因爲我不能在密碼字節和用戶字節之間分開,因爲它全部在一個流中發送(我知道它是正確的?)。

我該如何正確使用? :O

+0

如何使用固定的寬度? – MrJack320 2014-09-25 09:32:44

+0

我的知識還很基礎。對不起,我的問題聽起來很愚蠢。 – MrJack320 2014-09-25 09:33:31

回答

2

這個問題有點寬泛,但是在這裏。但基本上,你有很多選擇,你只需要選擇一個並運行。我的意思是,某些方法是有優點和缺點的,但是你可以比那些我能猜出你要做的更容易的工作。

如果你正在做這樣的事情,你會擔心安全問題,但這遠遠超出了你的問題的範圍,所以我只是假設你已經覆蓋了它。

這些只是我的頭頂幾個選項。

使用分隔符

如果這個去了,你有,你知道在服務器和客戶端上的單個字符,可以保證永遠不會出現在用戶名(或者你可以進入逃跑,如果需要的話)。如果你選擇了一個冒號,例如,你會再發送服務器:

username:password 

而且服務器可以使用string.Split(':')或同等制定出的參數。

使用固定的闊

再次,建立一個合同,但在這裏你擁有一定數量的用戶名會佔用不管是什麼人物,絕不會超過。

username  password 

然後你可以抓住string.Substring(...)找到參數。

HTTP

這是一個很大的更復雜,但一個HTTP請求的報頭Authorization使用冒號分隔符等我原先提到。如果您規範化爲針對所有請求使用HTTP,則它可能看起來像這樣,並帶有一些僞代碼。

GET /path HTTP/1.1 
Authorization: BASIC [base64(username:password)] 

JSON/XML

JSON和XML格式是用於發送和存儲數據。

JSON會是這個樣子:

{ "username" : "thisIsTheUsername", "password" : "password01" } 

XML會是這個樣子:

<creds> 
    <username>thisIsTheUsername</username> 
    <password>password01</password> 
</creds> 
+0

非常感謝! :) – MrJack320 2014-09-25 09:44:39

+0

@ MrJack320我希望能回答你的問題,或者至少讓你走上正確的道路。 – 2014-09-25 09:45:03

0

您可以將對象序列化爲二進制文件並在服務器上發送流嗎? 然後在服務器上反序列化二進制流到一個對象。