这也许是最简单的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 |
# re: 第一个socket程序-C\S模式的文件传输程序
2006-08-28 13:04 |
哦,上次也是你叫我来看你的文章的,原来你就是李闯,!你真厉害.
回复 更多评论
# re: 第一个socket程序-C\S模式的文件传输程序
2006-09-02 15:40 |
thanks a lot.
real programmer!
回复 更多评论
# re: 第一个socket程序-C\S模式的文件传输程序
2006-09-02 23:09 |
@罗家峰
纠正一下,是"创"不是"闯"~~!!-_-
回复 更多评论
# re: 第一个socket程序-C\S模式的文件传输程序
2008-04-27 19:22 |
# re: 第一个socket程序-C\S模式的文件传输程序
2008-06-20 17:31 |
# 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 |
# re: 第一个socket程序-C\S模式的文件传输程序
2008-08-29 08:09 |
# re: 第一个socket程序-C\S模式的文件传输程序
2008-10-23 21:19 |
谢谢分享,结构设计地相当巧妙
进一步明白了C++中结构体和类关系,原来他们简直就是一回事,
只有一点不同:默认权限,前者是public后者是private
回复 更多评论
# re: 第一个socket程序-C\S模式的文件传输程序
2009-06-16 16:50 |