设为首页 收藏本站
查看: 1553|回复: 0

[经验分享] Socket网络编程

[复制链接]

尚未签到

发表于 2015-12-16 12:07:39 | 显示全部楼层 |阅读模式
0.环境安装
  环境使用我的这一篇文章安装好libssh2库。
  http://www.cnblogs.com/wunaozai/p/4528394.html
  使用一个带有SFTP功能的FTP服务器。注意有些FTP服务器是不带SFTP功能的。这里我使用这个FreeSSHd作为SFTP服务器。
  http://www.freesshd.com/?ctt=download
  关于freesshd配置说两句,Server status标签 点击确定SSH server is running。SSH标签,确定配置完成。Authentication标签下Password authentication为Allowed,Public key authentication为Disabled,这样做的原因是我接下来要做的程序只支持密码登录,减少不必要的干扰,如果有需要,可以自己设定。Tunneling标签,所有选项选中,如果没有选中,本地如果网络复杂的话,可能会有问题。SFTP标签,选择一个作为FTP的根目录。Users标签,增加一个用户。基本设置就这些了。
   DSC0000.png
1.示例讲解
  我们先从libssh2中的示例程序进行讲解,libssh2源代码中的example文件夹中有几个常见的示例程序,我们此次先讲解上传文件和下载文件这两个基础功能。
  下面这个是sftp_write_nonblock.c的源代码,已被折叠。
DSC0001.gif  View Code  下面这个是sftp_nonblock.c的源代码
 View Code  上面一个是发送文件到sftp服务器,下面是从sftp服务器获取文件。编译和运行结果如下图所示。
   DSC0002.png
2.修改示例程序
  软件提供的源代码是比较完整的,为了方便,对里面的功能进行修改。修改为符合本次使用的windows版本,仅支持密码访问。
  sftp-write.c 用于把本地文件上传到sftp服务器中
 View Code  sftp-read.c 用于把服务器上的文件下载到本地中
 View Code  至于用到的libssh2_config.h这个文件,没有的话可以在代码中注释掉.
   DSC0003.png
   下面这个是freesshd产生的日志中一部分
DSC0004.gif   
1 05-28-2015 14:18:05 HOST localhost SSH connection attempt. 2 05-28-2015 14:18:05 HOST localhost SSH user successfully logged on using password. 3 05-28-2015 14:18:06 SFTP service granted to user user. 4 05-28-2015 14:18:06 HOST localhost user is uploading wunaozai.txt (E:\wunaozai.txt) 5 05-28-2015 14:18:06 HOST localhost SSH user disconnected. 6 05-28-2015 14:18:23 HOST localhost SSH connection attempt. 7 05-28-2015 14:18:23 HOST localhost SSH user successfully logged on using password. 8 05-28-2015 14:18:23 SFTP service granted to user user. 9 05-28-2015 14:18:23 HOST localhost user is uploading wunaozai.txt (E:\wunaozai.txt) 10 05-28-2015 14:18:23 HOST localhost SSH user disconnected. 11 05-28-2015 14:18:49 HOST localhost SSH connection attempt. 12 05-28-2015 14:18:49 HOST localhost SSH user successfully logged on using password. 13 05-28-2015 14:18:49 SFTP service granted to user user. 14 05-28-2015 14:18:49 HOST localhost user is uploading wunaozai.txt (E:\wunaozai.txt) 15 05-28-2015 14:18:49 HOST localhost SSH user disconnected. 16 05-28-2015 14:18:55 HOST localhost SSH connection attempt. 17 05-28-2015 14:18:56 HOST localhost SSH user successfully logged on using password. 18 05-28-2015 14:18:56 SFTP service granted to user user. 19 05-28-2015 14:18:56 HOST localhost user is downloading wunaozai.txt (E:\wunaozai.txt) 20 05-28-2015 14:18:56 HOST localhost SSH user disconnected.  
  有了上面这两个主要的功能,SFTP的客户端就基本功能实现了,至于mkdir和dir功能就参考里面的示例程序,基本都可以看懂。
3.使用putty连接freesshd
  了解过SFTP原理之后,就知道,SFTP其实跟FTP没有多大的关系,其实就是一个使用SSH协议,然后进行会话,会话过程保存为文件,嗯,大概就是这个样子了。所以我们可以使用普通的ssh软件进行登录,拿到该SFTP服务器站点的SHELL。然后可以各种操作,看起来很危险的样子,所以不管用什么SFTP服务器在配置用户的时候要注意的。 putty工具里面还有个PSFTP.exe这个工具可以连接到SFTP服务器,没事的也可以玩玩看。
   DSC0005.png  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-151984-1-1.html 上篇帖子: sftp脚本 下篇帖子: shell实现ftp命令示例
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表