linux下c语言读取docx,linux下c语言实现文件传输的简单实例(详解).docx

本文提供了一个简单的Linux环境下使用C语言实现文件传输的例子。通过创建socket并进行绑定、监听等步骤,实现服务器端的基本文件接收功能。注意此示例未包含错误处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

linux 下C语言实现文件传输的简单实例

实例来自互联网,这段测试代码实现了基本的文件传输原理,没有实现错误处理。

//////////////////////////////////////////////////////////////////////////////////////

// file_server.c文件传输顺序服务器示例

//////////////////////////////////////////////////////////////////////////////////////

//本文件是服务器的代码

#in elude

#in elude

#in elude

#i nclude

#i nclude

#in clude

/*

#in clude

#in clude

#in clude

#in clude

*/

// for sockaddr_ in

// for socket

// for socket

// for printf

// for exit

// for bzero

#defi ne HELLO_WORLD_SERVER_PORT

#defi ne LENGTH_OF_LISTEN_QUEUE

6666

20

#defi ne BUFFER_SIZE 1024

#define FILE NAME MAX SIZE 512

int main (i nt argc, char **argv)

{

//设置一个socket 地址结构server_addr,代表服务器in ternet 地址,端口

struct sockaddr_ in server_addr;

bzer o(&server_addr,sizeof(server_addr)); //

把一段内存区的内容全部设置为0

server_addr.sin_family = AF_INET;

server_addr.sin_addr.s_addr = hto ns(INADDR_ANY);

server_addr.sin_port = hton s(HELLO_WORLD_SERVER_PORT);

socket//创建用于in ternet的流协议(TCP)socket, 用server_socket 代表服务器

socket

int server_socket = socket(PF_INET,SOCK_STREAM,0);

if( server_socket < 0)

{

prin tf("Create Socket Failed!");

exit(1);

}

//把socket和socket地址结构联系起来

if( bin d(server_socket,(struct sockaddr* )& server_addr,sizeof(server_addr)))

{

prin tf("Server Bi nd Port : %d Failed!", HELLO_WORLD_SERVER_PORT); exit(1);

}

//server_socket 用于监听

if ( liste n( server_socket, LENGTH_OF_LISTEN_QUEUE))

{

printf("Server Listen Failed!");

exit(1);

}

while (1) //服务器端要一直运行

{

//定义客户端的 socket 地址结构client_addr

struct sockaddr_i n clie nt_addr;

sockle n_t len gth = sizeof(clie nt_addr);

//接受一个到server_socket 代表的socket的一个连接

//如果没有连接请求,就等待到有连接请求--这是accept函数的特性

//accept函数返回一个新的 socket,这个 socket(new_server_socket)用于同连

接到的客户的通信

〃n ew_server_socket代表了服务器和客户端之间的一个通信通道

//accept函数把连接到的客户端信息填写到客户端的socket地址结构

clie nt_addr中

int n ew_server_socket = accept(server_socket,(struct

sockaddr*) &clie nt_addr,&len gth

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值