2024年1月4日发(作者:)

linux实训报告,在linux下用c语言写飞鸽传书

如何在Linux下使用C语言编写飞鸽传书程序

一、引言

飞鸽传书是一种基于局域网的即时通信方式,通过局域网将消息传递给指定的接收方。本实训报告将详细介绍如何在Linux操作系统下使用C语言编写飞鸽传书程序。

二、准备工作

1. 安装Linux操作系统:由于本篇文章主要以Linux系统为基础,因此需要在计算机上安装Linux操作系统。可以选择常用的发行版本,如Ubuntu、Fedora等。

2. 安装编译器:在Linux系统下使用C语言编写程序,需要安装相应的编译器。常见的C语言编译器有gcc、clang等。在终端中运行以下命令安装gcc编译器:

sudo aptget install gcc

三、创建项目文件夹

在开始编写程序之前,需要创建一个用于存放项目文件的文件夹。可以使用以下命令在终端中创建一个名为“pigeon”的文件夹:

mkdir pigeon

四、编写程序代码

1. 创建主函数

在pigeon文件夹下创建一个名为`main.c`的源代码文件,并在文件中编写以下代码:

c

include

include

include

include

define PORT 8888

int main() {

int socket_fd;

struct sockaddr_in server_addr;

char message[1024];

创建套接字

socket_fd = socket(AF_INET, SOCK_STREAM, 0);

if (socket_fd == 1) {

perror("socket creation failed");

return 1;

}

设置服务器信息

server__family = AF_INET;

server__port = htons(PORT);

server__addr.s_addr = inet_addr("127.0.0.1");

连接服务器

if (connect(socket_fd, (struct sockaddr *)&server_addr,

sizeof(server_addr)) == 1) {

perror("connection failed");

return 1;

}

发送消息

printf("Enter your message: ");

fgets(message, 1024, stdin);

send(socket_fd, message, strlen(message), 0);

printf("Message sentn");

关闭套接字

close(socket_fd);

return 0;

}

2. 编译程序

在终端中进入pigeon文件夹,并使用以下命令编译主函数:

gcc o pigeon main.c

3. 创建服务端代码

在pigeon文件夹下创建一个名为`server.c`的源代码文件,并在文件中编写以下代码:

c

include

include

include

include

include

define PORT 8888

int main() {

int socket_fd, client_socket_fd;

struct sockaddr_in server_addr, client_addr;

char buffer[1024];

int addrlen = sizeof(server_addr);

创建套接字

socket_fd = socket(AF_INET, SOCK_STREAM, 0);

if (socket_fd == 1) {

perror("socket creation failed");

return 1;

}

设置服务器信息

server__family = AF_INET;

server__port = htons(PORT);

server__addr.s_addr = htonl(INADDR_ANY);

绑定套接字

if (bind(socket_fd, (struct sockaddr *)&server_addr,

sizeof(server_addr)) == 1) {

perror("binding failed");

return 1;

}

监听套接字

if (listen(socket_fd, 3) == 1) {

perror("listening failed");

return 1;

}

接受连接

client_socket_fd = accept(socket_fd, (struct sockaddr

*)&client_addr, (socklen_t *)&addrlen);

if (client_socket_fd == 1) {

perror("accepting failed");

return 1;

}

接收消息

read(client_socket_fd, buffer, 1024);

printf("Received message: %sn", buffer);

关闭套接字

close(socket_fd);

return 0;

}

4. 编译服务端程序

在终端中使用以下命令编译服务端代码:

gcc o server server.c

五、运行程序

1. 在终端中运行服务器程序:

./server

2. 在另一个终端中运行客户端程序:

./pigeon

3. 根据程序提示,在客户端中输入想要发送的消息。

六、实验结果

当客户端发送消息后,服务器端将会打印出接收到的消息。

七、实验总结

通过本次实训,我们学习了如何在Linux操作系统下使用C语言编写飞鸽传书程序。我们了解了Linux下的网络编程基础知识,学习了套接字的创建、连接、发送和接收等操作。这些知识对于理解计算机网络和实现具有网络功能的应用程序非常重要。在未来的学习和工作中,我们可以利用这些知识开发更加复杂和功能

丰富的应用程序。