随笔-174  评论-598  文章-0  trackbacks-0

这也许是最简单的socket程序了,功能很简单,采用TCP协议写出一个client端和一个server端,在client端输入一个文件的全路径然后在server端查找这个文件传送回client端然后把文件保存在client端的C:根目录下面.

第一个socket程序,花费了我不少的功夫,犯下了不少的低级愚蠢的错误,"万事开头难",为纪念之,把代码放在这里.


下载地址:
http://www.cppblog.com/Files/converse/SocketDemo.rar

posted on 2006-08-03 21:38 那谁 阅读(3232) 评论(11)  编辑 收藏 引用 所属分类: 网络编程

评论:
# re: 第一个socket程序-C\S模式的文件传输程序 2006-08-07 00:13 | viven
呵呵,多谢了  回复  更多评论
  
# re: 第一个socket程序-C\S模式的文件传输程序 2006-08-28 13:04 | 罗家峰
哦,上次也是你叫我来看你的文章的,原来你就是李闯,!你真厉害.  回复  更多评论
  
# re: 第一个socket程序-C\S模式的文件传输程序 2006-09-02 15:40 | inforpic
thanks a lot.
real programmer!  回复  更多评论
  
# re: 第一个socket程序-C\S模式的文件传输程序 2006-09-02 23:09 | 创系
@罗家峰
纠正一下,是"创"不是"闯"~~!!-_-  回复  更多评论
  
# re: 第一个socket程序-C\S模式的文件传输程序 2008-04-27 19:22 | ss
ding  回复  更多评论
  
# re: 第一个socket程序-C\S模式的文件传输程序 2008-06-20 17:31 | rwei
不错不错
顶一个  回复  更多评论
  
# re: 第一个socket程序-C\S模式的文件传输程序 2008-07-14 13:01 | 匿名有益健康
我刚写完自己的第一个文件传输程序,并测试完,上网看看别人是怎么写的,写得不错,很有借鉴意义。
1.学到了一个新的函数 _splitpath,以前是采用strrchr 找'\\'的。
2.网络传输带路径的文件名字符串需要特殊处理,比如'\' 转化为'\\'?,有这个必要吗,我还得测试测试。(经过测试不添加也可,加'\'应该是针对初始化时吧)

你说“犯下了不少的低级愚蠢的错误”,如果总结出来就好了,毕竟很多搜索文件传输程序的人是初中级水平。以我个人看来有两处最需要改进:
1.用strncpy ,strncat等代替strcpy,strcat等函数,防止最常见的缓冲区溢出;
2.原程序中分配文件缓冲区的方法需要改进,不适合超大文件的传输,毕竟一次开辟几百兆甚至更多的内存空间可能会导致问题,其实可以开辟一块不大的内存,比如一个包能容纳的大小,每接收一次就直接写入磁盘中。
就说这么两点,看对后面访问的人有没有一点帮助。  回复  更多评论
  
# re: 第一个socket程序-C\S模式的文件传输程序 2008-07-26 08:29 | lengbufang
呵呵!  回复  更多评论
  
# re: 第一个socket程序-C\S模式的文件传输程序 2008-08-29 08:09 | music
谢谢了!  回复  更多评论
  
# re: 第一个socket程序-C\S模式的文件传输程序 2008-10-23 21:19 | huangcongjie
谢谢分享,结构设计地相当巧妙

进一步明白了C++中结构体和类关系,原来他们简直就是一回事,
只有一点不同:默认权限,前者是public后者是private  回复  更多评论
  
# re: 第一个socket程序-C\S模式的文件传输程序 2009-06-16 16:50 | faileast
真是太好了。  回复  更多评论
  


标题  
姓名  
主页
验证码 *
内容(提交失败后,可以通过“恢复上次提交”恢复刚刚提交的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
[使用Ctrl+Enter键可以直接提交]
.NET频道  博客园社区  闪存
网站导航: