《FTP服务器客户端源代码C语言》由会员分享,可在线阅读,更多相关《FTP服务器客户端源代码C语言(12页珍藏版)》请在人人文库网上搜索。

1、FTP 服务器源代码: #include Winsock.h #include windows.h #include stdio.h #define RECV_PORT 200 #define SEND_PORT 3000 #pragmacomment(lib, wsock32.lib) SOCKET sock,sock1,sockdir,sockput,sockget; sockaddr_in ServerAddr; sockaddr_in ClientAddr; int Addrlen;/地址长度 char filename20;/文件名 char order10;/命令 char rbu。

2、ff1024;/接收缓冲区 char sbuff1024;/发送缓冲区 /初始化 winsock DWORD StartSock() WSADATA WSAData; if(WSAStartup(MAKEWORD(2,2), return (-1); return(1); DWORD CreateSocket() sock=socket(AF_INET,SOCK_STREAM,0);/* 建立套接字 */ if(sock=SOCKET_ERROR) printf(sock create fail ! n); WSACleanup(); return(-1); ServerAddr.sin_fa。

3、mily=AF_INET; ServerAddr.sin_addr.s_addr=htonl(INADDR_ANY); /* 任意网络接口 */ ServerAddr.sin_port=htons(RECV_PORT); if(bind(sock,(struct sockaddr FAR *) return(-1); return (1); /发送文件 int SendFileRecord(SOCKET datatcps,WIN32_FIND_DATA *pfd) /used to send response to client char filerecordMAX_PATH+32; FILE。

4、TIME ft; FileTimeToLocalFileTime( SYSTEMTIME lastwtime; FileTimeToSystemTime( char *dir=pfd-dwFileAttributes sprintf(filerecord,%04d-%02d-%02d %02d:%02d%5s %10d%-40sn, lastwtime.wYear, lastwtime.wMonth, lastwtime.wDay, lastwtime.wHour, lastwtime.wMinute, dir, pfd-nFileSizeLow, pfd-cFileName); if(sen。

5、d(datatcps,filerecord,strlen(filerecord),0)=SOCKET_ERROR) printf(Error occurs when sending file list!n); return 0; return 1; int SendFileList(SOCKET datatcps) HANDLE hff; WIN32_FIND_DATA fd; /搜索文件 hff=FindFirstFile(*, if(hff=INVALID_HANDLE_VALUE)/发生错误 const char *errstr=cant list files!n; printf(lis。

6、t file error!n); if(send(datatcps,errstr,strlen(errstr),0)=SOCKET_ERROR) printf(error occurs when senging file list!n); closesocket(datatcps); return 0; BOOL fMoreFiles=TRUE; while(fMoreFiles) /发送此项文件信息 if(!SendFileRecord(datatcps, return 0; /搜索下一个文件 fMoreFiles=FindNextFile(hff, closesocket(datatcps。

7、); return 1; int SendFile(SOCKET datatcps,FILE* file) printf(sending file data.); for(;) /从文件中循环读取数据并发送客户端 int r=fread(sbuff,1,1024,file); if(send(datatcps,sbuff,r,0)=SOCKET_ERROR) printf(lost the connection to client!n); closesocket(datatcps); return 0; if(r1024)/文件传送结束 break; closesocket(datatcps)。

8、; printf(donen); return 1; /连接 DWORD ConnectProcess() Addrlen=sizeof(sockaddr_in); if(listen(sock,5)0)/连接数? printf(Listen error); return(-1); printf(Listening.n); for(;) sock1=accept(sock,(struct sockaddr FAR *) for(;) memset(rbuff,0,1024); memset(sbuff,0,1024); if(recv(sock1,rbuff,1024,0)0) fwrite(。

9、rbuff,sizeof(char),count,fd); fclose(fd); /put if(strncmp(rbuff,dir,3)=0) strcpy(sbuff,rbuff); send(sock1,sbuff,1024,0); SendFileList(sock1); if(strncmp(rbuff,cd,2)=0) strcpy(filename,rbuff+3); strcpy(sbuff,rbuff); send(sock1,sbuff,1024,0); SetCurrentDirectory(filename); closesocket(sock1); /for 2 /。

10、for 1 int main() if(StartSock()=-1) return(-1); if(CreateSocket()=-1) return(-1); if(ConnectProcess()=-1) return(-1); return(1); 运行结果 FTP 客户端运行源代码: #include Winsock.h #include windows.h #include stdio.h #include time.h #include #define RECV_PORT 200 #define SEND_PORT 3000 #pragmacomment(lib, wsock32。

11、.lib) SOCKET sock; char filename20; sockaddr_in ServerAddr; char rbuff1024; char sbuff1024; char IIP20; /处理 help 命令 void help() cout*COMMANDS help*endl *命令*作用*endl ?或者help.显示你提供的所有命令endl dir.显示远方当前目录的文件endl cd.改变远方当前目录和路径endl cd 的用法(进入下级目录): cd 路径名endl cd 的用法(进入上级目录): cd .endl get.下载(接受)文件endl get 的。

12、用法: get 文件名endl put.上传(发送)文件endl put 的用法:put 文件名endl quit.退出endl *endl; /处理 dir 命令 void list(SOCKET sockfd) int nRead; while(true) nRead=recv(sock,rbuff,1024,0); if(nRead=SOCKET_ERROR) printf(read response error!n); exit(1); if(nRead=0)/数据读取结束 break; /显示数据 rbuffnRead=0; printf(%s,rbuff); int SendFil。

13、e(SOCKET datatcps,FILE* file) printf(sending file data.); for(;) /从文件中循环读取数据并发送客户端 int r=fread(sbuff,1,1024,file); if(send(datatcps,sbuff,r,0)=SOCKET_ERROR) printf(lost thr connection to client!n); closesocket(datatcps); return 0; if(r1024)/文件传送结束 break; closesocket(datatcps); printf(donen); return 。

14、1; /初始化 scoket DWORD StartSock() WSADATA WSAData; char a20; memset(a,0,20); if(WSAStartup(MAKEWORD(2,2), return (-1); if(strncmp(IIP,a,20)=0) printf(请输入连接的主机号:); scanf(%s, ServerAddr.sin_family=AF_INET; ServerAddr.sin_addr.s_addr=inet_addr(IIP); ServerAddr.sin_port=htons(RECV_PORT); return(1); /创建套接。

15、字 DWORD CreateSocket() sock=socket(AF_INET,SOCK_STREAM,0); if(sock=SOCKET_ERROR) printf(sock create fail! n); WSACleanup(); return(-1); return(1); /发送连接请求 DWORD CallServer() CreateSocket(); if (connect(sock,(struct sockaddr *) memset(IIP,0,20); return(-1); return(1); /发送命令 DWORD TCPSend(char data) i。

16、nt length; length=send(sock,data,strlen(data),0); if(length0) fwrite(rbuff,sizeof(char),count,fd); fclose(fd); /get if(strncmp(rbuff,put,3)=0) strcpy(filename,rbuff+9); fd2=fopen(filename,rb); if(fd2) if(!SendFile(sock,fd2) printf(send failed!); return 0; fclose(fd2); else/打开文件失败 strcpy(sbuff,cant open file!n); if(send(sock,sbuff,1024,0) return 0; /put if(strncmp(rbuff,dir,3)=0) list(sock); /dir if(strncmp(rbuff,cd,2)=0) closesocket(sock); WSACleanup();/cd return main(); /main 运行结果:。

C语言安卓FTP服务器,FTP服务器客户端源代码C语言相关推荐

  1. c语言读取无压缩的cbl的源代码,c语言基础算法案例

    很适合刚开始学C语言的同学. 1.C语言打印一条语句 源代码: /* C Program to print a sentence. */ #include int main() { printf(&q ...

  2. c语言判断一个数是否为偶数源代码,c语言判断一个数是否为偶数

    #include #include _Bool isOu(int n){ //高度注意:&的优先级低于== )==){ return true; } else{ return false; } ...

  3. 安卓文件浏览器ftp服务器地址,安卓文件浏览器ftp服务器

    安卓文件浏览器ftp服务器 内容精选 换一换 CDM支持周期性自动将新增文件上传到OBS,不需要写代码,也不需要用户频繁手动上传即可使用OBS的海量存储能力进行文件备份.这里以CDM周期性备份FTP的 ...

  4. js ftpclient linux server,Node.JS用Socket实现FTP Server服务器和Client客户端

    通信过程 FTP协议其实就是主机和服务通过Socket进行固定格式的通信过程,当某客户端连接到FTP 服务器后,客户端发送指令: [参数] 服务会按以下格式返回: [参数或说明] 例如以下是FileZ ...

  5. 【计算机网络】应用层 : FTP 文件传输协议 ( FTP 客户端 和 服务器 | FTP 工作原理 | FTP 传输模式 )

    文章目录 一.文件传送协议 二.FTP 客户端 和 服务器 三.FTP 工作原理 四.FTP 传输模式 一.文件传送协议 文件传送协议 : 文件传送协议 FTP ( File Transfer Pro ...

  6. FTP服务器和客户端源代码编写问题(ftp server client source)

    最近关注FTP程序源代码的朋友非常多,这里简单说明一下. 其实FTP也就是普通的Socket程序,只是需要按照FTP协议(RFC959, 1635?可能我记错了)去做,也就是每个消息有固定的结构的,比 ...

  7. Ubuntu常用服务器ftp、ssh

    Linux常用服务器构建-ftp服务器 ftp服务器 FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为"文传协议". 用于Intern ...

  8. 打印机服务器文件,打印机服务器ftp配置文件

    打印机服务器ftp配置文件 内容精选 换一换 设置日志级别.参见准备环境完成环境配置.以HwHiAiUser用户登录安装Toolkit组件的服务器.执行命令,设置日志级别.adc --host xx. ...

  9. FileZilla FTP Server FTP over TLS settings 设置FTP服务器证书启用FTPS 【转载】

    FileZilla FTP Server FTP over TLS settings 设置FTP服务器证书,绑定TLS证书启用FTPS访问,还可以强制客户端使用FTPS加密协议访问FTP服务器禁止未加 ...

最新文章

  1. Chapter 3、Java语法基础(二)----Java基本数据类型、变量与常量 (20th,Feb)
  2. JavaWeb(五)之JSTL标签库
  3. VS2015编译ffmpeg 3.4.2
  4. CSHOP后台设置SMTP发邮件提示 Error: need RCPT command 错误解决
  5. linux 配置 mysql_linux下mysql配置文件my.cnf最详细解释
  6. 第3课 天安门广场 《小学生C++趣味编程》--C++、Scratch
  7. qt5中重绘工具栏_Qt ------ QPainter 和控件组件的重绘
  8. Python和java二选一该学啥
  9. 通过Chrome浏览器检测和优化页面
  10. Linux中文件名解析处理源码分析
  11. matlab定位噪声位置,Matlab怎么样调节KALMAN滤波中的过程噪声和观测噪声
  12. 基于 python + WebDriverAgent 的“跳一跳”小程序高分教程 1
  13. 视频切割(解决音视频不同步问题)
  14. 闰年c语言循环计算方法,C语言计算有多少闰年(答案原创)
  15. python 正则表达式的应用
  16. MacOS安装git
  17. 如何升级自己的思维?成为你想成为的自己。
  18. 千挑万选, 终于确定了
  19. 区块链入门教程(7)--使用控制台部署及调用合约
  20. 最新苹果手机备份同步工具 iMazing2.16.4官方免费下载

热门文章

  1. SQL注入漏洞测试(报错盲注)笔记
  2. 怎样备份iOS已安装、已下架App的IPA文件?
  3. 企业物联网平台如何选择?
  4. 关于vue+elementui设置div背景图片填充不生效问题
  5. 学校计算机桌子尺寸,家用电脑桌设计尺寸一般是多大
  6. python使用继承开发动物和狗
  7. 2020-07-04
  8. 《推荐系统学习》之推荐系统那点事
  9. 解决audio: Failed to create voice `goldfish_audio'错误
  10. Android数据存储恢复机制