基于TCP socket的文件上传与下载(服务器、客户端)

一、功能

        客户端:

                1.将本地文件上传到服务器  

                2.将服务器端的文件下载到本地

        服务器:

                1.接收客户端上传的文件并保存  

                2.将客户端请求下载的文件传输给客户端

二、原理

        客户端:

                1.创建网络通信接口

                        int socket(int domain, int type, int protocol);

                2.将客户端的IP地址和端口号与socket绑定

                        int connet(int sockfd, const struct sockaddr *addr, socklen_t addrlen);

                3.与服务器进行通信

                        recv() : 可接受服务器发来的消息

                        send():可给服务器发送消息

                        open():创建文件,文件上传或下载需要新的文件来接收

        服务器:                

                1.创建网络通信接口

                        int socket(int domain, int type, int protocol);

                2.将服务器的IP地址和端口号与socket绑定

                        int bind(int sockfd, const struct sockaddr *addr,  socklen_t addrlen);

                3.监听是否有客户端请求连接

                        int listen(int sockfd, int backlog);

                4.阻塞等待客户端连接

                        int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);

                5.与客户端进行通信

                        recv() : 可接受客户端发来的消息

                        send():可给客户端发送消息

                        open():创建文件,文件上传或下载需要新的文件来接收

三、代码

tcp_server.c

#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/socket.h>
#include <fcntl.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <string.h>
#include <unistd.h>
#include <stdlib.h>
#include <dirent.h>

#define SIZE 64

int server_init(char *ipaddr, unsigned short port, int backlog);
void processGet(int rws,char *fileName);//下载
void processPut(int rws,char *fileName);//下载
void processList(int rws);//目录列表

int main(int ar
  • 4
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值