// udpserverDemo.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "acl_cpp/lib_acl.hpp"
using namespace acl;
int _tmain(int argc, _TCHAR* argv[])
{
acl_cpp_init();
const char* server_ip = "127.0.0.1:12345";
const int BUF_SIZE = 4096;
char buf[BUF_SIZE];
acl::socket_stream udp_server;
if (!udp_server.bind_udp(server_ip)) {
return 1;
}
std::cout << "等待客户端发送UDP数据..." << std::endl;
while (true) {
acl::string client_addr;
int recv_len = udp_server.read(buf, BUF_SIZE, false);
if (recv_len <= 0) {
continue;
}
buf[recv_len] = '\0';
const char* strpeerip = udp_server.get_peer_ip();
int send_len = udp_server.write(buf, recv_len);
if (send_len <= 0) {
std::cerr << "向客户端[" << client_addr.c_str()
<< "]发送响应失败!" << std::endl;
}
else {
std::cout << "已向[" << client_addr.c_str() << "]回显数据: " << buf;
}
}
udp_server.close();
return 0;
}