当前位置:  技术问答>linux和unix

[ftp服务器]编写ftp服务器遇到问题,请教大家一下。谢谢。

    来源: 互联网  发布时间:2016-04-26

    本文导语:  先贴代码  void  start(void) { int listenfd; int CtlConnectFd; struct sockaddr cliaddr; socklen_t clilen=sizeof(cliaddr); listenfd = Tcp_service(INADDR_ANY,5555); // 5555 端口 // 测试阶段服务器监听 用 5555 端口 Tcp_listen(listenfd,MAX_CONNEC...

先贴代码

 void  start(void)
{
int listenfd;
int CtlConnectFd;
struct sockaddr cliaddr;
socklen_t clilen=sizeof(cliaddr);
listenfd = Tcp_service(INADDR_ANY,5555); // 5555 端口
// 测试阶段服务器监听 用 5555 端口

Tcp_listen(listenfd,MAX_CONNECT_COUNT);
while (1)
{
CtlConnectFd = Tcp_accept(listenfd,(struct sockaddr *)&cliaddr,&clilen);
if (fork()==0)
{ // 启动的时候,(控制链接)马上链接 CtlConnect
// 子进程  
close(listenfd);
// to do 子进程的处理工作
write_loop(CtlConnectFd,"220 test",strlen("220 test"));
                        // 疑问在这里
                        // 建立链接了,我想马上服务器就做出应答,在客户端打出上面这些信息
                        // 可是一直打不出来。想想这个问题没解决后面很难做下去,接下去的命令实现都是要这样测试的。
close(CtlConnectFd);
exit(0); // 子进程退出
}
close(CtlConnectFd);
}
}


// 相关函数的封装

int Tcp_service(char * ip,int port) // 创建服务器监听套接字,并绑定ip && port
{
int listenfd;

listenfd = socket(AF_INET,SOCK_STREAM,0);
if (listenfd == -1)
{
// 创建失败
return -1;
}
// 创建成功

struct sockaddr_in servaddr;
socklen_t len;

memset(&servaddr,0,sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(port);
//servaddr.sin_addr.s_addr = htonl("192.168.0.188");
servaddr.sin_addr.s_addr = inet_addr("192.168.0.188");
len = sizeof(servaddr);
Tcp_bind(listenfd,(struct sockaddr *)&servaddr,len);
return listenfd;
}


// 服务器套接口 绑定套接口地址
int Tcp_bind(int sockfd,struct sockaddr * my_addr,socklen_t addrlen)// 绑定
{
if (bind(sockfd,my_addr,addrlen) != 0 )
{
perror("Because:call bind function flase . Startup service is failedn");
exit(EXIT_FAILURE);
}
return 0;
}

// 监听函数
int Tcp_listen(int sockfd,int backflog) // 监听函数
{
if (listen(sockfd,backflog) !=0 )
{
perror("Because:call listen function flase. Starup service is failedn");
exit(EXIT_FAILURE);
}
return 0;
}

// 接受函数
int Tcp_accept(int sockfd,struct sockaddr * addr,socklen_t * addrlen) // 接收函数
{
int clientfd;
clientfd = accept(sockfd,addr,addrlen);
if (clientfd == -1 )
{
perror("Because: call accept function flase . Starup service is failedn");
exit(EXIT_FAILURE);
}
return clientfd;
}



|
即然flashftp跟leapftp不是你写的,你怎么知道,这两个客户端对你发过去的消息“220 test”的处理是怎么样的呢?我想是你的消息发过去了,但客户端发现不是预定想要的消息,所以主动关断了。你可以抓包看一下。看消息是不是发过去了,连接断开由哪端发起。

    
 
 

您可能感兴趣的文章:

  • 用ftp命令连到ftp服务器后,在ftp提示符下用什么命令可以查看本地机器当前目录有哪些文件?
  • 我想在我的red hat linux开FTP服务器,有没有什么软件可以开FTP服务器的??
  • 跨平台FTP服务器 Wing FTP Server
  • 在linux操作系统上向ftp服务器(linux系统)上上传文件,我要纪录操作日志,得到上传到ftp服务器上的文件的路径问题?
  • 我想开发一个LINUX下的FTP服务器软件,能否推荐现在几款比较好的在LINUX下的FTP软件做为参考
  • 如何调用FTP命令来管理FTP服务器???
  • FTP!!!写一个简单FTP服务的服务器和客户端
  • Linux服务器上原来没有安装ftp Server,请问我安装了Wu-ftp 后怎么启动它?
  • 请问配置了ftp服务器、邮件服务器后系统默认开放哪些端口?
  • Turbolinux访问自己的FTP服务器和WWW服务器问题
  • FTP服务器软件 vsftpd
  • 有关ftp服务器的三个菜鸟问题
  • windows 远程连接linux下的ftp服务器
  • redhat linux 连接不上FTP服务器?在线等
  • ftp服务器及客户端的相关问题
  • linux 下怎么样建立FTP服务器?
  • 关于linux的ftp服务器?解决问题者,重分酬谢。
  • 分布式FTP服务器 DrFTPD
  • solaris8下如何建立FTP服务器?
  • FTP服务器 Apache FtpServer
  • ubuntu装好BUM后,看不到FTP服务,如何开启FTP服务?
  • 如何在Red Hat上建立FTP服务 并且建立FTP一个用户
  • 请问如何在Redhat7.1下安装Ftp服务,如何开启Ftp帐号????请教!!!急急急急急急
  • 问一下,Solaris中建立的FTP服务,在服务器上有缓存吗?
  • 我在redhat7.2中默认自定义安装了ftp,telnet服务如何启动这两种服务。
  • ftp http 服务器提供的服务本机能打开,别人打不开
  • 在linux中架设好FTP服务后,增加了用户却无法用新增加的用户访问FTP,纳闷呀..
  • 我用的linux9 FTP服务也起来了但是怎么还是用ftp登陆不上啊??
  • Red Hat Linu7.2,安装时选了FTP服务,装好后ftp连接不上...
  • 在Web服务器上如何启用并运行FTP服务
  • 用java如何在NT上实现FTP服务?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux下ftp发送文件的异常处理改如何编写
  • 求助:Linux下ftp客户端代码编写
  • 求助各位大侠:Linux下Ftp客户端程序编写
  • 谁给个C编写的完整的有注释的FTP源代码,我给300分
  • 哭求在linux下用c语言编写的ftp上传文件的源代码!
  • 请教一个问题,如何编写shell脚本把一个目录下每天新增的所有文件定时传到ftp上面?
  • 编写FTP程序,遇到问题请大家帮忙!
  • 如何用JAVA编写测试本机上是否有FTP服务?
  • 编写ftp客户端程序遇到的问题
  • C++编写FTP客户端解析LIST命令获取目录不完整,求解。
  • java命名空间javax.print.attribute.standard类referenceurischemessupported的类成员方法: ftp定义及介绍
  • 为什么会出现ftp: ftp/tcp: unknown service
  • ftp协议介绍及ftp常用的上传下载等操作命令使用方法
  • FTP客户端Java类库 ftp4j
  • FTP匿名登陆 LINUX 出现错误 linux FTP 550 permission
  • 基于Web的FTP客户端 net2ftp
  • Node.js 的 FTP 客户端 node-ftp
  • FTP客户端 FTP Rush
  • 请教一个跑shell连ftp时获取ftp返回值的问题
  • Crob FTP Server并发用户测试,免费开放FTP,欢迎参加
  • 在安装linux7.2时忘了选择FTP,怎样手动安装FTP?
  • 在ubanto中使用ftp命令访问ftp站点,但是文件列表显示乱码
  • ftp client程序怎麼通過代理服務器連上ftp server?
  • ftp连接问题,就是linux连接windows ftp的问题,高手请进(在线等待)!!!!!
  • vsftpd ftp: ftp/tcp: unknown service 请教高手指点
  • 新手虚心请教.在线等复....vsftp配置成功后,本机可以FTP上,但其他系统通过FTP工具不能上.防火墙不能关..
  • proftp中,如何让FTP的用户是非Linux用户,只是FTP用户?
  • 在ACC变成中要使用发ftp传送文件,但文件名不确定,请问怎么样在程序的FTP中使用字符串变量???
  • ftp问题:如何控制用户只能在非工作时间使用FTP?
  • 用命令ftp连接成功,用UE进行ftp连接不成功
  • 100分白送,谁帮我搞来ftp://ftp.javasoft.com/pub/jdk1.1/rmi/class-server.zip


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3