Linux 是一种十分流行且普遍操做的操做,许多开发者已经起头将 Linux 做为他们的次要开发平台。Linux 编程需要一定的编程经历和技能,但是若是您对编程和 Linux 有浓重的兴趣,那么探究 Linux 编程将会是一段充满挑战和乐趣的路程。本文将会从入门到实战,辅佐您深切领会 Linux 编程。
一、入门 Linux 编程
Linux 是一种基于 C 语言的操做,具有丰硕的编程接口。开发者能够通过编写 C 轨范或者操做 Linux 供给的 API 来编写应用轨范。若是您是 Linux 的初学者,建议先阅读 Linux 文档,领会 Linux 的根柢概念和架构。
下面是一个简单的示例轨范,能够辅佐您快速入门 Linux 编程。
c#include
#include
#include
#include
#include
int main() {
int serverfd, clientfd, read_size;
char buffer[1024];
struct sockaddrin serveraddr, client_addr;
int opt = 1;
int addrlen = sizeof(client_addr);
char *message = "Hello, World!";
// 创建处事器
serverfd = socket(AFINET, SOCK_STREAM, 0);
if (server_fd == -1) {
perror("Error creating server socket");
exit(1);
}
// 绑定处事器地址
serveraddr.sinfamily = AF_INET;
serveraddr.sinport = htons(12345);
serveraddr.sinaddr.saddr = htonl(INADDRANY);
if (bind(serverfd, (struct sockaddr *)&serveraddr, sizeof(server_addr)) == -1) {
perror("Error binding server socket");
exit(1);
}
// 开启处事器
if (setsockopt(serverfd, SOLSOCKET, SOREUSEADDR | SOREUSEPORT, &opt, sizeof(opt)) == -1) {
perror("Error setting socket options");
exit(1);
}
if (listen(server_fd, 3) == -1) {
perror("Error listening");
exit(1);
}
puts("Server started...");
while(1) {
// 领受客户端连接
clientfd = accept(serverfd, (struct sockaddr *)&client_addr, &addrlen);
puts("Connection from client ");
// 领受数据并发送给客户端
readsize = recv(clientfd, buffer, 1024);
send(clientfd, buffer, readsize);
puts("Message received: ");
puts(buffer);
}
close(client_fd);
close(server_fd);
return 0;
}
那个示例轨范创建了一个处事器,然后绑定处事器地址并开启处事器。接着,轨范起头领受客户端连接,领受数据并发送给客户端。客户端发送过来的是一个字符串,处事器将收到并发送一个回答。