一、功能
客户端:
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