用c#写一个队列,接收socket.RECEIEVE数据
时间: 2024-02-03 08:15:47 浏览: 53
以下是一个简单的C#队列,用于接收Socket的数据:
```csharp
using System.Collections.Generic;
using System.Net.Sockets;
public class SocketQueue
{
private Queue<byte[]> dataQueue = new Queue<byte[]>();
public void Enqueue(byte[] data)
{
lock (dataQueue)
{
dataQueue.Enqueue(data);
}
}
public byte[] Dequeue()
{
lock (dataQueue)
{
if (dataQueue.Count > 0)
{
return dataQueue.Dequeue();
}
else
{
return null;
}
}
}
public int Count
{
get
{
lock (dataQueue)
{
return dataQueue.Count;
}
}
}
}
// 使用方法:
SocketQueue socketQueue = new SocketQueue();
// 接收数据
byte[] buffer = new byte[1024];
int bytesRead = socket.Receive(buffer);
byte[] data = new byte[bytesRead];
Array.Copy(buffer, data, bytesRead);
// 将数据加入队列
socketQueue.Enqueue(data);
// 处理队列中的数据
while (socketQueue.Count > 0)
{
byte[] receivedData = socketQueue.Dequeue();
// 处理接收到的数据
}
```
这个队列使用了`Queue<T>`类来存储接收到的数据。在接收到数据时,将其加入队列中;在需要处理数据时,从队列中取出数据。注意,在访问队列时需要进行线程同步,使用`lock`关键字来避免多个线程同时访问队列时引发的问题。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)