C++ C++;boost.asio服务器和客户端连接不稳定
我开始学习boost.asio,我遇到了一些tcp连接不稳定的问题。官方boost网站上有一个例子:C++ C++;boost.asio服务器和客户端连接不稳定,c++,boost,tcp,boost-asio,C++,Boost,Tcp,Boost Asio,我开始学习boost.asio,我遇到了一些tcp连接不稳定的问题。官方boost网站上有一个例子: #include <ctime> #include <iostream> #include <string> #include <boost/asio.hpp> using boost::asio::ip::tcp; std::string make_daytime_string() { using namespace std; //
#include <ctime>
#include <iostream>
#include <string>
#include <boost/asio.hpp>
using boost::asio::ip::tcp;
std::string make_daytime_string()
{
using namespace std; // For time_t, time and ctime;
time_t now = time(0);
return ctime(&now);
}
int main()
{
try
{
boost::asio::io_service io_service;
tcp::acceptor acceptor(io_service, tcp::endpoint(tcp::v4(), 13));
for (;;)
{
tcp::socket socket(io_service);
acceptor.accept(socket);
std::string message = make_daytime_string();
boost::system::error_code ignored_error;
boost::asio::write(socket, boost::asio::buffer(message),
boost::asio::transfer_all(), ignored_error);
}
}
catch (std::exception& e)
{
std::cerr << e.what() << std::endl;
}
return 0;
}
为什么是白天?它的意思是什么,在服务器中它在哪里被忽略了,或者我只是不错过什么
有完整的客户端代码:www.boost.org/doc/libs/1_39_0/doc/html/boost_asio/tutorial/tutdaytime1.html
感谢您提前解释“日间”
指用于日间服务的港口。这是你在接受器上看到的13
。以下是著名端口的列表(无论是什么意思):
Dayer只是另一个协议(如FTP等),它使用端口13。如果要在特定端口号上连接到服务器,则代码如下所示:
tcp::resolver::query query(host_ip, "5678"); // 5678 is the port number
Dayer是服务名称,在
tcp::resolver::query
服务名称
标识请求的服务的字符串。这可能是一种描述
名称或与端口号对应的数字字符串。可能是
空字符串,在这种情况下,所有解析的端点都将有一个端口
数量为0
好的thnx,另外,是否可以创建自己的端口来连接到服务器?或者创建自己的服务器,我可以使用您提供的列表中的每个端口?@Edgar Buchvalov:我不知道您的意思。。。您可以选择任何要进行连接的端口。否,例如,现在我以休闲方式编写:tcp::resolver::query query(主机ip,“Day”);我可以写:tcp::resolver::QueryQuery(主机ip,13);会不会是same@EdgarBuchvalov:您应该检查ASIO参考,但我相信它必须是
查询(主机ip,“13”)
而不是.thnx代表Answer,但是我可以不使用“Dayer”一词,而只使用我的端口号吗client@EdgarBuchvalov在我的回答中,我向您展示了如何使用特定的端口号<代码>tcp::解析器::查询查询(主机ip,“13”)与使用“Daily”
相同。
tcp::resolver::query query(host_ip, "5678"); // 5678 is the port number