Linux 创建tcp服务器
时间: 2024-02-16 17:29:42 浏览: 65
linux下的tcp服务器
要在Linux上创建TCP服务器,可以使用以下步骤:
1. 创建一个socket:使用socket()函数创建一个套接字,指定协议族(AF_INET或AF_INET6)、套接字类型(SOCK_STREAM)和协议号(通常为0)。
2. 绑定地址和端口:使用bind()函数将服务器的IP地址和端口号绑定到套接字上,以便客户端可以连接到它。
3. 监听连接请求:使用listen()函数将套接字设置为监听模式,以便可以接受客户端的连接请求。
4. 接受连接:使用accept()函数接受客户端的连接请求,并创建一个新的套接字来处理与该客户端的通信。
5. 接收和发送数据:使用recv()和send()函数接收和发送数据。
下面是一个简单的TCP服务器示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <unistd.h>
#define PORT 8080
int main(int argc, char const *argv[])
{
int server_fd, new_socket;
long valread;
struct sockaddr_in address;
int addrlen = sizeof(address);
// 创建套接字
if ((server_fd = socket(AF_INET, SOCK_STREAM, 0)) == 0)
{
perror("socket failed");
exit(EXIT_FAILURE);
}
// 将套接字绑定到指定的IP地址和端口号
address.sin_family = AF_INET;
address.sin_addr.s_addr = INADDR_ANY;
address.sin_port = htons(PORT);
if (bind(server_fd, (struct sockaddr *)&address, sizeof(address)) < 0)
{
perror("bind failed");
exit(EXIT_FAILURE);
}
// 开始监听连接请求
if (listen(server_fd, 3) < 0)
{
perror("listen failed");
exit(EXIT_FAILURE);
}
// 接受客户端连接请求,并创建新的套接字
if ((new_socket = accept(server_fd, (struct sockaddr *)&address, (socklen_t *)&addrlen)) < 0)
{
perror("accept failed");
exit(EXIT_FAILURE);
}
// 从客户端接收数据并回复
char buffer[1024] = {0};
valread = read(new_socket, buffer, 1024);
printf("Received message from client: %s\n", buffer);
char *reply = "Hello from server";
send(new_socket, reply, strlen(reply), 0);
printf("Reply sent to client: %s\n", reply);
// 关闭套接字
close(new_socket);
close(server_fd);
return 0;
}
```
在该示例中,服务器将在8080端口监听连接请求,并在接受客户端连接请求后,从客户端接收一条消息并回复一个“Hello from server”的消息。
阅读全文