网站首页关键词,wordpress api 自定义认证,找施工队伍去什么网站,wordpress 无刷新分页一、注意事项#xff1a; NetworkStream 是稳定的#xff0c;面向连接的#xff0c;所以它只适合 TCP 协议的环境下工作所以一旦在 UDP环境中#xff0c;虽然编译不会报错#xff0c;但是会跳出异常。如果用构造产生NetworkStream的实例#xff0c;则必须使用连接的Socke…一、注意事项 NetworkStream 是稳定的面向连接的所以它只适合 TCP 协议的环境下工作所以一旦在 UDP环境中虽然编译不会报错但是会跳出异常。如果用构造产生NetworkStream的实例则必须使用连接的Socket例如 TcpClient tcpClient new TcpClient(serverIp,port);//创建并发起连接
NetworkStream stream tcpClient.GetStream();//如果断开连接了则此处会有问题 如果该NetworkStream拥有对Socket的所有权,则在使用NetworkStream的Close方法时会同时关闭 Socket,否则关闭 NetworkStream 时不会关闭 Socket。以下stream持有socket的所有圈由于使用了using当ReadMessage结束后会销毁stream同时关闭Socket连接。 TcpClient tcpClient new TcpClient(serverIp,port);
NetworkStream stream tcpClient.GetStream();
using (stream)
{ReadMessage(stream);
} NetworkStream 使用后不会自动关闭提供的socket必须使用 NetworkStream 构造函数时指定 Socket 所有权(NetworkStream 的构造函数中设置)。
二、NetworkStream 的属性 CanSeek:用于指示流是否支持查找它的值始终为falseDataAvailable 指示:要读取的 NetworkStream 上是否有可用的数据,一般来说通过判断这个属性来判断NetworkStream中是否有数据Length:NetworkStream 不支持使用 Length 属性强行使用会发生NotSupportedException 异常Position:NetworkStream 不支持使用 Position 属性强行使用会发生NotSupportedException 异常。
三、NetworkStream的方法
同样NetworkStream的方法大致重写或继承了Stream的方法但是以下方法必须注意: 1、int Read(byte[] buffer,int offset,int size)
该方法将数据读入buffer参数并返回成功读取的字节数。如果没有可以读取的数据则Read方法返回0。Read 操作将读取尽可能多的可用数据直至达到由size 参数指定的字节数为止。如果远程主机关闭了连接并且已接收到所有可用数据Read 方法将立即完成并返回零字节。
2、void Write(byte[] buffer, int offset,int size)
Write 方法在指定的 offset 处启动并将 buffer 内容中的 size 字节发送到网络。Write方法将一直处于阻止状态(可以用异步解决)直到发送了请求的字节数或引发 SocketException 为止。如果收到 SocketException可以使用SocketException.ErrorCode 属性获取特定的错误代码。