socket应用(一)如何利用C语言写文件传输的程序
来源:互联网 发布:淘宝书城网 编辑:程序博客网 时间:2024/05/22 13:38
服务器端(发送文件):首先打开文件【fopen】,用rb方式打开,既可以发送文本文件,也可以发送二进制文件,在无错时初始化套接字socket,即初始化socket库【WSAStartup】,分配socket【socket】,填充服务器的地址,即填充sockaddr_in结构,然后进行绑定【bind】,设置套接字为监听套接字【listen】,接收连接【accept】,至此服务器阻塞,等待客户端的连接。
客户端(接收文件):首先打开文件【fopen】,用wb方式打开,在无错时初始化套接字socket,即初始化socket库【WSAStartup】,分配socket【socket】,填充客户端的地址,即填充sockaddr_in结构,然后进行绑定【bind】,再填充服务器的地址结构,然后调用【connect】进行连接,当连接成功后,第一阶段的工作便结束了。
第二阶段,发送文件。
服务器端:使用循环while,结束条件是(!feof(fp)),fp是文件指针,feof检测当前的文件读取指针是否到达文件尾部,若到达了就返回真,否则返回假。然后在循环内部依次调用【fread】、【send】进行发送。这里有一个问题需要注意,调用fread的时候有两个参数是要每次读多少字节和读多少次,将第一个设置为1,将第二个设置为缓冲区的大小,用一个变量记录实际读到多少字节,即【fread】的返回值,然后将其传递给【send】,就可以实现发送文件了,在发送完成后断开连接【closesocket】,关闭文件【fclose】。
客户端:使用while死循环,调用【recv】接收文件,【fwrite】写入文件,这里也有个和上面类似的问题,就是要将recv的返回值传递给fwrite的第三个参数,即受到了多少字节,就向文件中写多少字节。当recv返回值为0时(连接断开时)退出循环,【closesocket】关闭套接字,调用【fclose】关闭文件。
- socket应用(一)如何利用C语言写文件传输的程序
- socket应用(一)如何利用C语言写文件传输的程序
- C 语言实现文件传输 (socket实现)
- socket应用(二) 用C语言写远程屏幕监视程序
- 使用socket的Linux上的C语言文件传输顺序服务器和客户端示例程序
- 使用socket的Linux上的C语言文件传输顺序服务器和客户端示例程序
- 使用socket的Linux上的C语言文件传输顺序服务器和客户端示例程序
- 使用socket的Linux上的C语言文件传输顺序服务器和客户端示例程序
- 使用socket的Linux上的C语言文件传输顺序服务器和客户端示例程序
- C语言socket 蓝牙文件传输
- 利用socket实现简单的文件传输小程序
- 网络编程 基于Socket的多文件传输程序实现(一)
- Linux下C语言Socket实现文件传输
- linux系列(一)C语言编写Socket程序
- java语言利用Socket实现对操作系统的命令调用和文件传输
- Go语言 简单的的socket文件传输
- 基于socket的Java文件传输的程序
- 使用SOCKET API写的客户端与服务端测试程序(C语言)
- 关于gprof系统性能查看工具的简单使用
- Excerpts from Writing Efficient Programs
- 新浪微博下拉刷新功能的实现
- vs2008快捷键大全
- 深入Java单例模式
- socket应用(一)如何利用C语言写文件传输的程序
- 编译器之编程及语法Tips
- Excerpts from Programming Pearls and More Programming Pearls
- Excerpts from The Practice of Programming
- Silverlight企业应用框架(Richwork.framework beta 1)修正版
- Javascript触发事件汇总大全
- EFM32片内外设--GPIO之SWD接口复用
- jquery之省,市,县
- socket应用(二) 用C语言写远程屏幕监视程序