NetworkStream怎么用
NetworkStream是一个用于网络通信的流对象,它可以在网络上发送和接收数据。以下是使用NetworkStream的一些常用方法和属性:
-
构造函数:
- NetworkStream(Socket socket):使用指定的Socket对象创建NetworkStream实例。
-
属性:
- CanRead:指示NetworkStream是否可读。
- CanWrite:指示NetworkStream是否可写。
- DataAvailable:指示NetworkStream中是否有可供读取的数据。
-
方法:
- Read(byte[] buffer, int offset, int size):从NetworkStream中读取数据,并将其存储到指定的缓冲区中。
- Write(byte[] buffer, int offset, int size):将指定的数据写入NetworkStream。
- Flush():清空NetworkStream的缓冲区,并将数据发送到远程主机。
- Close():关闭NetworkStream。
以下是一个简单的示例代码,演示如何使用NetworkStream发送和接收数据:
// 创建一个TCP客户端Socket
Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
// 连接到服务器
clientSocket.Connect("127.0.0.1", 8888);
// 创建NetworkStream对象
NetworkStream networkStream = new NetworkStream(clientSocket);
// 发送数据
byte[] sendData = Encoding.UTF8.GetBytes("Hello, Server!");
networkStream.Write(sendData, 0, sendData.Length);
networkStream.Flush();
// 接收数据
byte[] receiveData = new byte[1024];
int bytesRead = networkStream.Read(receiveData, 0, receiveData.Length);
string receivedMessage = Encoding.UTF8.GetString(receiveData, 0, bytesRead);
// 关闭NetworkStream和Socket
networkStream.Close();
clientSocket.Close();
在这个示例中,首先创建了一个TCP客户端Socket并连接到服务器。然后,使用Socket对象创建了一个NetworkStream实例。接下来,通过Write方法将数据发送到服务器,并使用Flush方法确保数据被发送到远程主机。最后,使用Read方法接收服务器返回的数据,并将其转换为字符串。最后,关闭NetworkStream和Socket对象。
需要注意的是,NetworkStream是基于流的通信,数据的传输可能会被分割成多个小块,因此在读取时需要注意处理分块数据的情况
原文地址: https://www.cveoy.top/t/topic/hzjh 著作权归作者所有。请勿转载和采集!