c语言socket网络编程例程
时间: 2023-09-10 16:01:56 浏览: 114
C++中Socket网络编程实例详解
5星 · 资源好评率100%
C语言是一种非常常用的编程语言,其在网络编程方面也有很多应用。其中,socket编程是其中之一的重要技术。下面是一个简单的C语言socket网络编程的例程。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#define PORT 8080
#define MAX_BUFFER_SIZE 1024
int main() {
int server_fd, new_socket, valread;
struct sockaddr_in address;
int addrlen = sizeof(address);
char buffer[MAX_BUFFER_SIZE] = {0};
char *response = "Hello from server";
// 创建socket
if ((server_fd = socket(AF_INET, SOCK_STREAM, 0)) == 0) {
perror("Failed to create socket");
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("Failed to bind");
exit(EXIT_FAILURE);
}
// 监听端口
if (listen(server_fd, 3) < 0) {
perror("Failed to listen");
exit(EXIT_FAILURE);
}
// 接受客户端请求
if ((new_socket = accept(server_fd, (struct sockaddr *)&address, (socklen_t*)&addrlen))<0) {
perror("Failed to accept");
exit(EXIT_FAILURE);
}
// 读取客户端发来的消息
valread = read(new_socket, buffer, MAX_BUFFER_SIZE);
printf("Received message: %s\n", buffer);
// 返回消息给客户端
send(new_socket, response, strlen(response), 0);
printf("Message sent\n");
// 关闭socket
close(new_socket);
close(server_fd);
return 0;
}
这个例程实现了一个简单的TCP服务器。它首先创建一个socket并绑定地址和端口。然后通过监听端口等待客户端连接,在接受到客户端的连接请求后,它会读取客户端发来的消息,并将一个固定的响应消息发回给客户端。最后关闭socket。
需要注意的是,这只是一个简单的例程,还有很多网络编程相关细节和错误处理没有包括在内。在实际应用中,可能还需要加入更多的逻辑和功能来满足具体需求。
阅读全文