2017-04-06 3 views
-1

私がやっていることは、TcpClientでHTTPプロトコルでデータを送信することです。しかし、私はここで問題に直面した。送信したデータ(ヘッダーの後)は、クライアントのアプリ(ブラウザなど)に完全には送信されませんでした。コード:HTTPとTcpClientでデータを送信できません

// Building data. 
string notfound = "NOT FOUND"; 
byte[] data = Encoding.UTF8.GetBytes(notfound); 

// Building header. 
m_responseBuilder.Append("HTTP/1.1 404 Not Found").Append(CRLF); 
m_responseBuilder.Append("Server: ETP").Append(CRLF); 
m_responseBuilder.Append("Content-Type: text/plain").Append(CRLF); 
m_responseBuilder.Append("Content-Length: ").Append(data.Length.ToString()).Append(CRLF); 
m_responseBuilder.Append(CRLF); 
byte[] header = Encoding.UTF8.GetBytes(m_responseBuilder.ToString()); 

// Sending header. 
await SendDataAsync(header); 

// Sending data. 
await SendDataAsync(data); 

SendDataAsync:

async Task SendDataAsync(byte[] data) 
    { 
     try 
     { 
      await m_tcpchannel.WriteAsync(data, 0, data.Length); 
     } 
     catch 
     { 
      DestroyConnection(); 
     } 
    } 

私が得たもの:いただきました間違った右ここ

NOT FOUN 

+0

1)なぜHttpListenerを使用しないのですか? 2)もちろん、その壊れた、yerはバイトスープのあなたの指をつまんで、それをまわりをそっと動かします。 (あなたはUTF8でイメージをエンコードすることはできません;エンコーディングは文字列のため、System.Text名前空間のそれです)。 –

+0

1)私はabt httpパケットを学びたい –

+0

2)ファイルは文字列にエンコードされておらず、バイトとして直接送信されます。 –

答えて

0

ええ、問題があります。それはCRLFでした。私は\ r \ nの代わりに\ n \ rを書きました....

関連する問題