2011-06-27 103 views
2
GET /server HTTP/1.1 
Upgrade: WebSocket 
Connection: Upgrade 
Host: localhost:8181 
Origin: http://localhost:8080 
Sec-WebSocket-Key1: 42100 1 W5V X170y ER 
Sec-WebSocket-Key2: ~\\ 8 I4ms;34 l`1j5 V2h0 

Q??6QK? 

林接收到上述消息,並使用C#,以提取最後一組caracters的(Q 20 6QK):正則表達式行結束符和字符串終止符!使用以下正則表達式

Regex.Match(message, "\r\n\r\n(?<value>.*?)$", options).Groups["value"].Value; 

但是該正則表達式的結果是返回字符串終止子卡拉科特這樣的:

Q 20 6QK \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0

爲什麼?哪裏不對?

+0

對我感到羞恥!該字符串的數組大於字符串。那就是\ 0oes的原因......對不起,並且;) –

回答

1

您的字符串最後包含空值。問題在於你傳遞給正則表達式引擎的字符串,而不是正則表達式引擎本身。

也許你可以發佈創建字符串的代碼。你可能讀了一點太多的字節[]。

0

那些空值可能出現在響應中。服務器是否指定了內容長度?

是否有一個原因,你沒有使用HTTP客戶端從HTTP服務讀取?你最終會寫很多樣板(處理連接失敗等),你可以讓圖書館爲你處理。