#include <iostream>
#include <thread>
#include <cstring>
#include <arpa/inet.h>
#include <queue>
#include <mutex>
#include <condition_variable>
// 定义数据类型
struct Data {
char buffer[1024];
struct sockaddr_in client_address;
socklen_t client_address_len;
};
std::queue<Data> dataQueue;
std::mutex queueMutex;
std::condition_variable queueCondition;
void receiveData(int sock) {
while (true) {
Data data;
// 接收数据
data.client_address_len = sizeof(data.client_address);
ssize_t num_bytes = recvfrom(sock, data.buffer, sizeof(data.buffer), 0, (struct sockaddr*)&data.client_address, &data.client_address_len);
if (num_bytes > 0) {
std::lock_guard<std::mutex> lock(queueMutex);