2011-11-11 4 views
1

ソケットに接続してからNetworkStreamを読み込もうとしています。C# - NetworkStreamエラー - "操作は非ストリーム指向のソケットでは許可されていません。"

私のコードは以下の通りです:

NetworkStream myNetworkStream; 
Socket socket; 

socket = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.IPv4); 

socket.Connect(IPAddress.Parse("8.8.8.8"), 8888); 

myNetworkStream = new NetworkStream(socket); 

byte[] buffer = new byte[1024]; 
int offset = 0; 
int count = 1024; 

myNetworkStream.Read(buffer, offset, count); 

私は、私は次のエラーを取得上記デバッグしよう:

The operation is not allowed on non-stream oriented sockets.

私が間違っているのは何を?あなたがSocketType.Rawの代わりにSocketType.Streamを使用する必要が

おかげ

答えて

2

+0

は、このエラーを得たことをしようとしました「ソケット(AddressFamily.InterNetwork、SocketType.Stream、ProtocolType.Unspecified)」を動作しません:「要求されたプロトコルがシステムに設定されていない、またはまったく実装それは存在する " – JMK

+1

私はあなたがUDPソケットではなく、TCPソケットに接続しようとしていると信じています。ここでそのエラーメッセージを検索し、SOCK_DGRAMを指定します。 http://msdn.microsoft.com/en-us/library/windows/desktop/ms740668%28v=vs.85%29.aspx – harlam357

0

使用これを、それが

関連する問題