c++ tcp接收函数
时间: 2024-11-09 14:26:02 浏览: 16
在C++中,使用TCP套接字进行网络通信通常涉及到`socket`, `recv`和`send`函数。下面是一个基本的例子展示了如何创建一个TCP服务器端,监听并接收客户端的数据:
首先,需要包含必要的头文件:
```cpp
#include <iostream>
#include <string>
#include <sys/socket.h> // 对于socket操作
#include <arpa/inet.h> // 对于IP地址处理
#include <unistd.h> // gethostname, close
```
然后,创建一个套接字,并绑定到特定的端口:
```cpp
int server_socket = socket(AF_INET, SOCK_STREAM, 0);
if (server_socket == -1) {
std::cerr << "Error creating socket" << std::endl;
exit(1);
}
struct sockaddr_in server_addr;
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(SOME_PORT_NUMBER);
server_addr.sin_addr.s_addr = INADDR_ANY;
bind(server_socket, (struct sockaddr *)&server_addr, sizeof(server_addr));
listen(server_socket, SOMAXCONN); // 监听连接请求
```
接下来,接受客户端的连接并创建新套接字:
```cpp
int client_sock = accept(server_socket, NULL, NULL);
if (client_sock == -1) {
std::cerr << "Error accepting connection" << std::endl;
exit(1);
}
```
接收客户端的数据:
```cpp
char buffer[1024];
socklen_t bytes_received = sizeof(buffer);
while (recv(client_sock, buffer, bytes_received, 0) > 0) {
std::cout << "Received: " << buffer << std::endl;
// 处理接收到的数据...
}
```
最后,关闭套接字:
```cpp
close(client_sock);
close(server_socket);
```
以上就是一个简单的TCP接收函数示例。当然,实际应用中还需要考虑错误处理、超时等问题。
阅读全文