基于boost1.60,开启一个线程,作为服务器,使用socket进行端口监听
时间: 2024-03-14 12:43:37 浏览: 63
socket 编程 程序对发 监听端口
5星 · 资源好评率100%
好的,以下是示例代码:
```c++
#include <iostream>
#include <boost/asio.hpp>
#include <thread>
using namespace boost::asio;
using namespace boost::asio::ip;
void serverFunc() {
io_service service;
tcp::acceptor acceptor(service, tcp::endpoint(tcp::v4(), 1234)); // 监听1234端口
tcp::socket socket(service);
std::cout << "Server start listening on port 1234." << std::endl;
while (true) {
acceptor.accept(socket);
std::cout << "Received a connection from " << socket.remote_endpoint().address().to_string() << std::endl;
socket.write_some(buffer("Hello, client!"));
}
}
int main() {
std::thread serverThread(serverFunc); // 创建一个新线程运行服务器
serverThread.detach(); // 分离线程,使其在后台运行,不影响主线程
// 程序继续运行,可以在这里进行其他操作
std::cout << "Main thread is running." << std::endl;
getchar();
return 0;
}
```
这段代码会启动一个TCP服务器,监听1234端口,每次接收到客户端连接请求后,向客户端发送一条欢迎消息。在主线程中,我们创建了一个新线程来运行服务器,然后程序继续运行,可以在主线程中进行其他操作。
阅读全文