C语言编写服务器端程序需要使用到socket编程,以及多线程或者多进程来处理客户端的请求。以下是一个简单的C语言服务器端程序示例:
```c
#include
#include
#include
#include
#include
#include
#include
#include
#define PORT 8080
int main() {
int server_fd, new_socket;
struct sockaddr_in address;
int opt = 1;
int addrlen = sizeof(address);
char buffer[1024] = {0};
if ((server_fd = socket(AF_INET, SOCK_STREAM, 0)) == -1) {
perror("socket failed");
exit(EXIT_FAILURE);
}
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);
}
while (1) {
if ((new_socket = accept(server_fd, (struct sockaddr *)&address, &addrlen)) < 0) {
perror("accept failed");
exit(EXIT_FAILURE);
}
printf("New connection from %s:%dn", inet_ntoa(address.sin_addr), ntohs(address.sin_port));
// Handle client request here
// ...
close(new_socket);
}
close(server_fd);
return 0;
}
```
这个程序创建了一个TCP服务器,监听在本地的8080端口。当有客户端连接时,它会打印出客户端的IP地址和端口号。你可以根据需要添加更多的功能,例如接收客户端发送的数据、处理客户端的请求等。