2011-11-11 16 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.

我在做什么错?

感谢

回答

2

你需要代替SocketType.Raw使用SocketType.Stream

+0

试过了,得到这个错误:“请求的协议还没有被配置到系统中,或者没有实现因为它存在“ – JMK

+1

我相信你试图连接到UDP套接字而不是TCP套接字。在这里搜索该错误消息,并指定SOCK_DGRAM。 http://msdn.microsoft.com/en-us/library/windows/desktop/ms740668%28v=vs.85%29.aspx – harlam357

0

使用这种将工作“插座(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Unspecified)”

相关问题