gpt4 book ai didi

c++ - 从 boost asio 客户端发送数据

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:45:03 33 4
gpt4 key购买 nike

我正在尝试编写一个程序,该程序可以通过网络将数据发送到监听端口的 Java 服务器。

#include "stdafx.h"
#include <boost/asio.hpp>
#include <boost/array.hpp>
#include <iostream>

void do_somenetwork(std::string host, int port, std::string message)
{
std::array<char, 1024> _arr;
boost::asio::io_service ios;
boost::asio::ip::tcp::endpoint endpoint(boost::asio::ip::address::from_string(host), port);
boost::asio::ip::tcp::socket socket(ios);
socket.connect(endpoint);

boost::array<char, 128> buf;
std::copy(message.begin(), message.end(), buf.begin());
boost::system::error_code error;

socket.write_some(boost::asio::buffer(buf, message.size()), error);

socket.read_some(boost::asio::buffer(_arr));
std::cout.write(&_arr[0], 1024);

socket.close();
}

int main(){
do_somenetwork(std::string("127.0.0.1"), 50000, ";llsdfsdf");

char ch;
std::cin >> ch;
}

当我使用这个程序时,我不断收到如下错误信息:

C4996: 'std::_Copy_impl': Function call with parameters that may be unsafe -     this call relies on the caller to check that the passed values are correct. To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. See documentation on how to use Visual C++ 'Checked Iterators' c:\program files (x86)\microsoft visual studio 12.0\vc\include\xutility 2132    1   ConsoleApplication1

我已尝试警告,但未找到与此错误相关的任何结果。有没有更好的方法来编写这段代码?我真的是 C++ 的新手,对 Boost 的实际工作方式不太了解。我正在使用 Visual Studio 2013 和 boost 1.60.0。

最佳答案

不是您问题的真正答案,而是一种解决方法。

我认为错误来自 std::copy 调用,您可以使用 data 绕过它std::string 中的方法直接作为缓冲区数组,而不是将其复制到您的 boost::array 中。

像这样:

socket.write_some(boost::asio::buffer(message.data(), message.size()), error);

关于c++ - 从 boost asio 客户端发送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40525615/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com