Author:QQ174554431
#include "stdafx.h"
#include <iostream>
#include <boost/asio/io_service.hpp>
#include <boost/asio.hpp>
int _tmain(int argc, _TCHAR* argv[])
{
try
{
boost::asio::io_service io_service;
boost::asio::ip::tcp::socket socket(io_service);
socket.connect(boost::asio::ip::tcp::endpoint(boost::asio::ip::address::from_string("10.10.90.121"),11111));
std::cout<<socket.local_endpoint().address().to_string()<<std::endl;
//my local ip address 10.10.118.140
std::cout<<socket.remote_endpoint().address().to_string()<<std::endl;
//10.10.90.121
}
catch(std::exception& e)
{
std::cerr<<e.what()<<std::endl;
}
return 0;
}
分享到:
相关推荐
在计算机网络中,获取计算机的名称和IP地址是常见的任务,尤其在编程中。本文将深入探讨如何使用C++语言来实现这一功能。 首先,计算机名称是操作系统为本地机器分配的标识符,通常用于网络通信。而IP地址...
在ROS(机器人操作系统)环境中,TCP/IP通信是实现机器人组件间或者机器人与远程计算机之间通信的一种常见方式。本文将深入探讨如何使用C++在ROS环境下编写TCP/IP客户端和服务器端程序,确保其“绝对可用”。 首先,...
在IT行业中,获取某台机器的...总之,获取机器的IP地址是网络编程的基础,无论是在本地还是远程,都可以通过相应的API和库函数来实现。对于开发者来说,理解这些功能的工作原理以及如何在不同环境下使用它们至关重要。
3. 解析服务器地址:使用`getaddrinfo`函数获取服务器的IP地址和端口信息。 4. 连接服务端:调用`connect`函数尝试与服务器建立连接。 5. 发送和接收数据:使用`send`发送数据,`recv`接收数据。 6. 关闭Socket和...
1. **网络接口编程**:为了获取本地或远程设备的IP,模块可能使用了操作系统提供的网络接口,如Windows的`gethostbyname`或`getaddrinfo`函数,或在Unix/Linux系统上的`socket` API。 2. **DHCP协议**:如果模块...
在这种模型中,基于Socket的通信层是连接客户端和服务器的关键组件,它负责建立连接、发送和接收数据,以及处理可能的错误和异常。 4. **C++编程**: 本项目使用C++语言进行开发,这是一种强大的、通用的编程语言,...
这个通信例程可能是为了教学目的,演示如何使用BOOST ASIO编写客户端应用程序,实现与远程服务器的连接和数据通信。 在使用BOOST ASIO时,开发者通常会创建一个`io_service`对象,它是整个I/O操作的调度中心。...
1. **网络编程**:客户端和服务器之间的通信基于TCP/IP协议,通常使用socket编程接口。C++标准库并不直接支持网络编程,但可以借助第三方库如Boost.Asio或者直接调用操作系统提供的socket API。 2. **数据序列化与...
接下来,Boost.Asio提供了一系列的处理器类,如`boost::asio::ip::tcp::socket`和`boost::asio::ip::udp::socket`,用于处理TCP和UDP连接。通过这些类,你可以建立连接、接收和发送数据。 在TCP通信中,`boost::...
连接操作是网络编程中最常见的操作之一,Boost.Asio提供的`asio::connect()`函数允许用户建立到远程主机的连接。 ##### 2.10 读写函数 读取和写入数据是网络通信的基本操作,Boost.Asio提供了相应的函数`asio::read...
在Boost.Asio中,我们可以使用`boost::asio::ip::tcp::socket`类来创建和管理套接字,这是进行网络通信的基础。 在服务端程序中,我们需要创建一个监听套接字,使用`boost::asio::acceptor`来接收来自客户端的连接...
// 连接到远程主机 boost::asio::connect(socket, boost::asio::ip::tcp::resolver(io_context).resolve("www.example.com", "http")); // 发送HTTP请求 const char request[] = "GET / ...
1. 创建`boost::asio::ip::udp::socket`对象,绑定到特定的IP地址和端口号。 2. 使用`socket.send_to()`函数发送数据到指定的远程端点。 3. 使用`socket.receive_from()`函数接收来自任何源的数据,并更新接收的端点...
在C++中,我们可以使用socket API来创建和管理网络连接,实现客户端和服务器之间的通信。 1. **套接字编程**:在C++中,套接字编程是通过`<sys/socket.h>`和`<netinet/in.h>`等头文件实现的。首先,我们需要创建一...
首先,需要包含`winsock2.h`头文件并初始化Winsock,然后创建套接字对象,通过`bind()`函数绑定本地IP和端口,`connect()`函数连接到远程服务器的IP和端口。数据发送可以使用`send()`函数,接收数据则使用`recv()`...
- **TCP/IP协议**:这是互联网的基础,包括TCP(传输控制协议)和IP(网际协议),负责数据的可靠传输和寻址。 - **HTTP/HTTPS**:超文本传输协议用于网页浏览,HTTPS是其安全版本,用于加密通信。 - **Socket...
在Asio库中,可以使用`boost::asio::ip::tcp::resolver`来解析服务器的地址,然后创建一个`boost::asio::ip::tcp::socket`实例并用`boost::asio::connect`函数建立连接。 2. **读写数据**:在连接建立后,客户端...
3. **属性设置**:设置控件的属性,如SocketType(选择TCP或UDP)、LocalPort(本地端口)、RemoteHost(远程主机地址)和RemotePort(远程端口)。 4. **事件处理**:编写与控件相关的事件处理程序,例如OnConnect...
网络编程在C++中通常涉及到套接字(Socket)编程,它是TCP/IP协议栈的一部分,提供了进程间通信的能力。在本实例中,开发者可能使用了TCP套接字,因为它们提供了面向连接、可靠的数据传输,适合于远程控制这样需要...
网络编程的核心是套接字(Socket)API,它是TCP/IP协议栈的一部分,允许不同设备间的通信。在C++中,可以使用Winsock库来操作套接字。创建套接字、绑定、监听、连接、发送和接收数据是网络编程的基本步骤。例如,你...