当前位置: 首页>>代码示例>>C++>>正文


C++ udp::socket类代码示例

本文整理汇总了C++中udp::socket的典型用法代码示例。如果您正苦于以下问题:C++ socket类的具体用法?C++ socket怎么用?C++ socket使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了socket类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: thread

	udp_tracker()
		: m_udp_announces(0)
		, m_socket(m_ios)
		, m_port(0)
	{
		error_code ec;
		m_socket.open(udp::v4(), ec);
		if (ec)
		{
			fprintf(stderr, "UDP Error opening listen UDP tracker socket: %s\n", ec.message().c_str());
			return;
		}

		m_socket.bind(udp::endpoint(address_v4::any(), 0), ec);
		if (ec)
		{
			fprintf(stderr, "UDP Error binding UDP tracker socket to port 0: %s\n", ec.message().c_str());
			return;
		}
		m_port = m_socket.local_endpoint(ec).port();
		if (ec)
		{
			fprintf(stderr, "UDP Error getting local endpoint of UDP tracker socket: %s\n", ec.message().c_str());
			return;
		}

		fprintf(stderr, "%s: UDP tracker initialized on port %d\n", time_now_string(), m_port);

		m_thread.reset(new thread(boost::bind(&udp_tracker::thread_fun, this)));
	}
开发者ID:caisan,项目名称:libtorrent,代码行数:30,代码来源:udp_tracker.cpp

示例2:

	dht_server()
		: m_dht_requests(0)
		, m_socket(m_ios)
		, m_port(0)
	{
		error_code ec;
		m_socket.open(udp::v4(), ec);
		if (ec)
		{
			fprintf(stderr, "Error opening listen DHT socket: %s\n", ec.message().c_str());
			return;
		}

		m_socket.bind(udp::endpoint(address_v4::any(), 0), ec);
		if (ec)
		{
			fprintf(stderr, "Error binding DHT socket to port 0: %s\n", ec.message().c_str());
			return;
		}
		m_port = m_socket.local_endpoint(ec).port();
		if (ec)
		{
			fprintf(stderr, "Error getting local endpoint of DHT socket: %s\n", ec.message().c_str());
			return;
		}

		fprintf(stderr, "%s: DHT initialized on port %d\n", time_now_string(), m_port);

		m_thread.reset(new libtorrent::thread(boost::bind(&dht_server::thread_fun, this)));
	}
开发者ID:UnitedMarsupials,项目名称:libtorrent,代码行数:30,代码来源:dht_server.cpp

示例3:

	udp_tracker()
		: m_udp_announces(0)
		, m_socket(m_ios)
		, m_port(0)
		, m_abort(false)
	{
		error_code ec;
		m_socket.open(udp::v4(), ec);
		if (ec)
		{
			std::printf("UDP Error opening listen UDP tracker socket: %s\n", ec.message().c_str());
			return;
		}

		m_socket.bind(udp::endpoint(address_v4::any(), 0), ec);
		if (ec)
		{
			std::printf("UDP Error binding UDP tracker socket to port 0: %s\n", ec.message().c_str());
			return;
		}
		m_port = m_socket.local_endpoint(ec).port();
		if (ec)
		{
			std::printf("UDP Error getting local endpoint of UDP tracker socket: %s\n", ec.message().c_str());
			return;
		}

		std::printf("%s: UDP tracker initialized on port %d\n", time_now_string(), m_port);

		m_thread = std::make_shared<std::thread>(&udp_tracker::thread_fun, this);
	}
开发者ID:Chocobo1,项目名称:libtorrent,代码行数:31,代码来源:udp_tracker.cpp

示例4:

	dht_server()
		: m_dht_requests(0)
		, m_socket(m_ios)
		, m_port(0)
	{
		error_code ec;
		m_socket.open(udp::v4(), ec);
		if (ec)
		{
			std::printf("Error opening listen DHT socket: %s\n", ec.message().c_str());
			return;
		}

		m_socket.bind(udp::endpoint(address_v4::any(), 0), ec);
		if (ec)
		{
			std::printf("Error binding DHT socket to port 0: %s\n", ec.message().c_str());
			return;
		}
		m_port = m_socket.local_endpoint(ec).port();
		if (ec)
		{
			std::printf("Error getting local endpoint of DHT socket: %s\n", ec.message().c_str());
			return;
		}

		std::printf("%s: DHT initialized on port %d\n", time_now_string(), m_port);

		m_thread = std::make_shared<std::thread>(&dht_server::thread_fun, this);
	}
开发者ID:Chocobo1,项目名称:libtorrent,代码行数:30,代码来源:dht_server.cpp

示例5: thread_fun

	void thread_fun()
	{
		char buffer[2000];
	
		for (;;)
		{
			error_code ec;
			udp::endpoint from;
			int bytes_transferred = m_socket.receive_from(
				asio::buffer(buffer, sizeof(buffer)), from, 0, ec);
			if (ec == boost::asio::error::operation_aborted
				|| ec == boost::asio::error::bad_descriptor) return;

			if (ec)
			{
				fprintf(stderr, "Error receiving on DHT socket: %s\n", ec.message().c_str());
				return;
			}

			try
			{
				entry msg = bdecode(buffer, buffer + bytes_transferred);

#if defined TORRENT_DEBUG && TORRENT_USE_IOSTREAM
				std::cerr << msg << std::endl;
#endif
				++m_dht_requests;
			}
			catch (std::exception& e)
			{
				fprintf(stderr, "failed to decode DHT message: %s\n", e.what());
			}
		}
	}
开发者ID:svn2github,项目名称:libtorrent-rasterbar,代码行数:34,代码来源:dht_server.cpp

示例6: check_deadline

void check_deadline(deadline_timer& deadline, udp::socket& socket) {
  if (deadline.expires_at() <= deadline_timer::traits_type::now()) {
    socket.cancel();
    deadline.expires_at(boost::posix_time::pos_infin);
  }
  deadline.async_wait(boost::bind(&check_deadline, boost::ref(deadline), boost::ref(socket)));
}
开发者ID:scockrell,项目名称:cwru-ros-pkg,代码行数:7,代码来源:crio_receiver.cpp

示例7: start_receive

 void start_receive() {
     socket_.async_receive_from(
             asio::buffer(recv_buffer_), remote_endpoint_,
             boost::bind(&Network::handle_receive, this,
                 asio::placeholders::error, 
                 asio::placeholders::bytes_transferred));
             
 }
开发者ID:ottolote,项目名称:TTK4145,代码行数:8,代码来源:thread_com.cpp

示例8: deadlineCallback

 void deadlineCallback(boost::asio::deadline_timer& t, udp::socket& s)
 {
   if (t.expires_at() <= boost::asio::deadline_timer::traits_type::now())
   {
     s.cancel();
     t.expires_at(boost::posix_time::pos_infin);
   }
   t.async_wait(boost::bind(&CompactRIOCommunicationNode::deadlineCallback, this, boost::ref(t), boost::ref(s)));
 }
开发者ID:Lenskiy,项目名称:Unmanned-ground-vehicle,代码行数:9,代码来源:crio_comm_node.cpp

示例9: on_next

	void on_next(const core::monitor::message& msg)
	{
		auto data_ptr = make_safe<std::vector<char>>(write_osc_event(msg));

		socket_.async_send_to(boost::asio::buffer(*data_ptr), 
							  endpoint_,
							  boost::bind(&impl::handle_send_to, this,
							  boost::asio::placeholders::error,
							  boost::asio::placeholders::bytes_transferred));		
	}	
开发者ID:TELE-TWIN,项目名称:Server,代码行数:10,代码来源:server.cpp

示例10: receiving

void receiving()
{

	mi_socket_server.async_receive_from(
	        boost::asio::buffer(recv_buffer), remote_endpoint,
	        boost::bind(&mi_udp_server::handler, this,
	        boost::asio::placeholders::error,
	        boost::asio::placeholders::bytes_transferred));

}
开发者ID:JulesDoc,项目名称:receiver-socket,代码行数:10,代码来源:receiver3v.cpp

示例11: sendToGroup

 void
 sendToGroup(udp::socket& sock, const std::vector<uint8_t>& buf, bool needToCheck = true) const
 {
   sock.async_send_to(boost::asio::buffer(buf), remoteMcastEp,
     [needToCheck] (const auto& error, size_t) {
       if (needToCheck) {
         BOOST_REQUIRE_EQUAL(error, boost::system::errc::success);
       }
     });
 }
开发者ID:named-data,项目名称:NFD,代码行数:10,代码来源:multicast-udp-transport-fixture.hpp

示例12: handleRead

  void handleRead(const boost::system::error_code& ec, std::size_t ln)
  {
    ros::Time cur_time = ros::Time::now();

    error_ = ec;
    if (!socket_.is_open())
      return;

    if (!ec)
    {
      std::string msg(data_);
      std::istringstream ss;

//      ss.unsetf(std::ios::floatfield);
//      // set %7.7f
//      ss.precision(7);
//      ss.width(7);

      if (!msg.empty())
      {
        boost::mutex::scoped_lock lock(mutex_);

        double velocity, heading, lat_acc, lon_acc, yaw_rate;
        // Emergency: 1 - ok, 0 - fault
        bool emergency_state;

        ss.str(msg);
        ss >> heading >> velocity >> lat_acc >> lon_acc >> yaw_rate >> emergency_state;

        kin_->updateState(cur_time, velocity, heading, lat_acc, lon_acc, yaw_rate, emergency_state);

        nav_msgs::Odometry msg;
        VehicleKinematics::stateStampedMsgToOdometryMsg(kin_->getState(), msg);

//        ROS_INFO_STREAM(kin_.getState());

//        msg.header.stamp = cur_time;
//        msg.header.frame_id = "base_link";
//        msg.child_frame_id = "odom";

        // Resolve frame names
        msg.header.frame_id = tf::resolve(tf_prefix_, msg.header.frame_id);
        msg.child_frame_id = tf::resolve(tf_prefix_, msg.child_frame_id);

        odom_tf_.header = msg.header;
        odom_tf_.child_frame_id = msg.child_frame_id;

        odom_tf_.transform.translation.x = msg.pose.pose.position.x;
        odom_tf_.transform.translation.y = msg.pose.pose.position.y;
        odom_tf_.transform.translation.z = msg.pose.pose.position.z;

        odom_tf_.transform.rotation = msg.pose.pose.orientation;

        odom_msg_ = msg;
      }
开发者ID:Lenskiy,项目名称:Unmanned-ground-vehicle,代码行数:55,代码来源:crio_comm_node.cpp

示例13: run

  void run() {
    using namespace boost::posix_time;
    boost::system::error_code error;
    ptime now;
    udp::endpoint endpoint;
    while(!this->checked_ || this->alive_) {
      socket->receive_from(asio::buffer(buf), endpoint, 0, error);

      if(error == boost::system::errc::success) {
        last = microsec_clock::local_time();
      }
    }
  }
开发者ID:kallaballa,项目名称:RetinaTattoo,代码行数:13,代码来源:heartbeat.hpp

示例14: thread_fun

	void thread_fun()
	{
		char buffer[2000];

		for (;;)
		{
			error_code ec;
			udp::endpoint from;
			size_t bytes_transferred;
			bool done = false;
			m_socket.async_receive_from(
				boost::asio::buffer(buffer, sizeof(buffer)), from, 0
				, boost::bind(&incoming_packet, _1, _2, &bytes_transferred, &ec, &done));
			while (!done)
			{
				m_ios.poll_one();
				m_ios.reset();
			}

			if (ec == boost::asio::error::operation_aborted
				|| ec == boost::asio::error::bad_descriptor) return;

			if (ec)
			{
				fprintf(stderr, "Error receiving on DHT socket: %s\n", ec.message().c_str());
				return;
			}

			try
			{
				entry msg = bdecode(buffer, buffer + bytes_transferred);

#if defined TORRENT_DEBUG && TORRENT_USE_IOSTREAM
				std::cerr << msg << std::endl;
#endif
				++m_dht_requests;
			}
			catch (std::exception& e)
			{
				fprintf(stderr, "failed to decode DHT message: %s\n", e.what());
			}
		}
	}
开发者ID:UnitedMarsupials,项目名称:libtorrent,代码行数:43,代码来源:dht_server.cpp

示例15: thread_fun

	void thread_fun()
	{
		char buffer[2000];

		error_code ec;
		udp::endpoint from;
		m_socket.async_receive_from(
			boost::asio::buffer(buffer, int(sizeof(buffer))), from, 0
			, std::bind(&udp_tracker::on_udp_receive, this, _1, _2, &from, &buffer[0], int(sizeof(buffer))));

		m_ios.run(ec);

		if (ec)
		{
			std::printf("UDP Error running UDP tracker service: %s\n", ec.message().c_str());
			return;
		}

		std::printf("UDP exiting UDP tracker thread\n");
	}
开发者ID:Chocobo1,项目名称:libtorrent,代码行数:20,代码来源:udp_tracker.cpp


注:本文中的udp::socket类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。