阅读量:2
在Ubuntu下进行C++网络编程,你可以使用套接字(socket)API
-
打开终端。
-
安装必要的库。对于C++网络编程,你需要安装
libsocket库。在终端中输入以下命令:
sudo apt-get update
sudo apt-get install libsocket-dev
- 创建一个新的C++文件。例如,创建一个名为
network_program.cpp的文件:
touch network_program.cpp
- 使用文本编辑器打开该文件,例如使用nano编辑器:
nano network_program.cpp
- 在文件中编写C++网络编程代码。以下是一个简单的TCP服务器示例:
#include
#include
#include
#include
#include
int main() {
int server_fd, new_socket;
struct sockaddr_in address;
int opt = 1;
int addrlen = sizeof(address);
char buffer[1024] = {0};
const char* hello = "Hello from server";
// 创建套接字文件描述符
if ((server_fd = socket(AF_INET, SOCK_STREAM, 0)) == 0) {
perror("socket failed");
exit(EXIT_FAILURE);
}
// 设置套接字选项
if (setsockopt(server_fd, SOL_SOCKET, SO_REUSEADDR | SO_REUSEPORT, &opt, sizeof(opt))) {
perror("setsockopt");
exit(EXIT_FAILURE);
}
// 定义服务器地址结构
address.sin_family = AF_INET;
address.sin_addr.s_addr = INADDR_ANY;
address.sin_port = htons(8080);
// 绑定套接字到服务器地址
if (bind(server_fd, (struct sockaddr*)&address, sizeof(address)) < 0) {
perror("bind failed");
exit(EXIT_FAILURE);
}
// 监听连接
if (listen(server_fd, 3) < 0) {
perror("listen");
exit(EXIT_FAILURE);
}
// 接受连接
if ((new_socket = accept(server_fd, (struct sockaddr*)&address, (socklen_t*)&addrlen)) < 0) {
perror("accept");
exit(EXIT_FAILURE);
}
// 读取客户端发送的数据
read(new_socket, buffer, 1024);
std::cout << "Message from client: " << buffer << std::endl;
// 向客户端发送数据
send(new_socket, hello, strlen(hello), 0);
std::cout << "Hello message sent" << std::endl;
// 关闭套接字
close(new_socket);
close(server_fd);
return 0;
}
- 编译C++代码。在终端中输入以下命令:
g++ network_program.cpp -o network_program
- 运行编译后的程序:
./network_program
现在你已经创建了一个简单的TCP服务器,可以接收客户端的连接和数据。你可以使用类似的代码创建一个TCP客户端,或者使用其他协议(如UDP)进行网络编程。
以上就是关于“Ubuntu下C++如何进行网络编程”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm