c++ socket通信
时间: 2024-01-31 09:11:00 浏览: 28
C++中的Socket通信可以通过使用socket库来实现。下面是一个简单的C++ Socket通信的示例:
```cpp
#include <iostream>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <string.h>
int main() {
// 创建socket
int serverSocket = socket(AF_INET, SOCK_STREAM, 0);
if (serverSocket == -1) {
std::cout << "创建socket失败" << std::endl;
return -1;
}
// 设置服务器地址和端口
sockaddr_in serverAddress{};
serverAddress.sin_family = AF_INET;
serverAddress.sin_addr.s_addr = INADDR_ANY;
serverAddress.sin_port = htons(8080);
// 绑定socket到指定地址和端口
if (bind(serverSocket, (struct sockaddr *) &serverAddress, sizeof(serverAddress)) < 0) {
std::cout << "绑定socket失败" << std::endl;
return -1;
}
// 监听连接
if (listen(serverSocket, 3) < 0) {
std::cout << "监听连接失败" << std::endl;
return -1;
}
// 接受客户端连接
int clientSocket = accept(serverSocket, nullptr, nullptr);
if (clientSocket < 0) {
std::cout << "接受客户端连接失败" << std::endl;
return -1;
}
// 发送和接收数据
char buffer[1024] = {0};
const char *message = "Hello from server!";
send(clientSocket, message, strlen(message), 0);
std::cout << "消息已发送" << std::endl;
read(clientSocket, buffer, 1024);
std::cout << "接收到的消息: " << buffer << std::endl;
// 关闭socket
close(serverSocket);
close(clientSocket);
return 0;
}
```
这个示例中,我们首先创建了一个服务器socket,然后绑定到指定的地址和端口上,并开始监听连接。当有客户端连接时,我们接受连接并发送一条消息给客户端,然后接收客户端发送的消息,并打印出来。最后关闭服务器socket和客户端socket。