⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 server_send_receive.c

📁 一个网络传输文件程序
💻 C
字号:
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <fcntl.h>#include <sys/socket.h>#include <netinet/in.h>#include <errno.h>#include "server_send_receive.h"#include "input_check.h"#define MAXBUF 1024#define FNAMELEN 100int server_send_receive(int connfd){	int fd,n;	char buf[MAXBUF];	char f_name[FNAMELEN];	bzero(buf,MAXBUF);	bzero(f_name,FNAMELEN);	read(connfd,buf,MAXBUF);	if(strcmp(buf,"CTS")==0){			/**** client to server ****/		write(connfd,"RTR",8);			/**** Ready To Read *******/		n=read(connfd, f_name, FNAMELEN);		buf[n]='\0';		if(server_checkDIR(f_name)!=0){		/**** check the DIR *******/			write(connfd,"DERR",4);			return 1;		}		write(connfd,"OK",2);		fd = open(f_name,O_WRONLY | O_CREAT | O_TRUNC, 0644);		if(fd<0){			perror("fail to open");			return 1;		}		while((n=read(connfd,buf,MAXBUF))>0){			write(fd,buf,n);		}		close(fd);	}	else if(strcmp(buf,"STC")==0){		/**** server to client ****/		write(connfd,"RTS",8);			/**** Ready To Send *******/		n=read(connfd, f_name, FNAMELEN);		buf[n]='\0';		if(server_checkfile(f_name)!=0){		/**** check the filename **/			write(connfd,"FERR",4);			return 1;		}		write(connfd, "OK", 2);		read(connfd, buf, MAXBUF);		bzero(buf, MAXBUF);		fd = open(f_name,O_RDONLY);		if(fd<0){			perror("fail to open");			return 1;		}		while((n=read(fd,buf,MAXBUF))>0){			write(connfd,buf,n);		}		close(fd);   	}	return 0;}	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -