2011-06-27 10 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? 

イム上記のメッセージを受信し、caractersの最後のセットを抽出するためにC#を使用して(Q ?? 6QK?)以下の正規表現を使用して:正規表現の行末と文字列ターミネータ!

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

しかし、正規表現の結果は、文字列の終端を返すですこのようなcaracter:

Q ?? 6QK \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0

なぜですか?なにが問題ですか?

+0

私に面倒!文字列は文字列よりも大きな配列になります。 thats \ 0oesの原因...ごめんなさいとthankes;) –

答えて

1

文字列の最後にヌルが含まれています。問題は正規表現エンジンに渡す文字列であり、正規表現エンジン自体ではありません。

おそらく、文字列を作成したコードを投稿することができます。あなたはたぶんバイトからあまりにも多くを読んでいるでしょう[]。

0

これらのnullが応答に存在する可能性があります。サーバーがコンテンツの長さを指定していますか?

HTTPクライアントからHTTPサービスを読み取らない理由はありますか?あなたは、あなたがライブラリを扱うことができるような多くの定型文を書くことになります(接続の失敗など)。