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

做socket程序,用recv,send这些函数好还是用fread,fwrite好?

    来源: 互联网  发布时间:2015-11-16

    本文导语:  是不是recv,send效率低呢?也就是时间长呢? | 用read/write,recv/send都行,不要用fread系列。 效率不低。 | 做socket程序,用recv,send这些函数好还是用fread,fwrite好? 一般说来是...

是不是recv,send效率低呢?也就是时间长呢?

|
用read/write,recv/send都行,不要用fread系列。
效率不低。

|
做socket程序,用recv,send这些函数好还是用fread,fwrite好?

一般说来是用recv,send,read,write等函数,用fopen系列函数是在C库中有缓冲的,一般用于对文件进行操作,而用read系列函数在C库中无缓冲,用于设备级读写。

缓冲有几个概念:
一是应用级缓冲,就是在C库中的缓冲,比如在LINUX中的printf中如果不加n它就暂不输出,道理是一样的。
二是块设备高冲缓冲,这是在内核磁盘高速缓冲区的概念
三是硬件缓冲,比如CACHE,外围设备在硬件上的缓冲等,不过不用了解到这个层面上去

|
不建议使用fread和fwrite不仅考虑效率问题。在很多异构系统通过网络互连起来,在一个系统上写的数据,在另一个系统上读,在这种情况下,这两个函数就不能正常工作,其原因是:
1。在一个结构中,同一成员的位移量可能随编译程序和系统的不同而异(由于不同的对准要求)。在某些编译程序有一选项,允许紧密包装结构(节省存储空间,而运行性能有所下降)或准确对齐,以便在运行时易于存取结构中的各成员,这意味着即使在单一系统上,一个结构的二进制存放方式也可能因编译程序的选择项而不同。
2。用来存储多字节整数和浮点值的二进制格式在不同系统结构间也可能不同。

    
 
 

您可能感兴趣的文章:

  • php使用socket_bind()函数绑定IP地址
  • 当进程处于socket读阻塞模式中,外部SIGNAL发生,此时信号相应响应函数可否进行socket写?
  • socket编程 通过man socket, 没有找到socket函数的第一参数该填什么 怎样利用man手册
  • Linux 下用什么函数查找socket上一次的错误?
  • 求教!为何在socket编程中调recv函数无法阻塞?
  • 驱动模块中用socket,哪有相关的函数啊??
  • socket编程,使用recvfrom()函数监听问题。
  • socket函数源码
  • linux 如何用SOCKET设置函数设置阻塞和非阻塞?
  • 求linux下socket函数手册
  • 关于socket中write()函数的问题
  • 如何知道一个用有没有权限调用bind()函数(socket编程的时候)
  • 请问有没有Linux下SOCKET服务端和客户端的接口函数!!
  • socket send函数疑问,缓冲区
  • linux下socket的send函数阻塞问题?
  • [求助]请问socket编程中send()函数可以发送整形数据吗?
  • socket send()函数错误
  • 编译socket程序需要加什么库函数?
  • socket callback函数问题
  • socket编程:recv(...)函数问题求救
  • 内核源文件/net/socket.c中调用其他模块的函数,该如何实现
  • 如何判断SOCKET还是连接着的?
  • 请问如何在linux下用gcc调试socket程序??? iis7站长之家
  • 还是applet的socket的问题,请多指教。
  • socket还是不太明白
  • 初级问题,socket(AF_INET, SOCK_STREAM, 0)是阻塞式还是非阻塞式?
  • linux C socke编程 创建的socket默认是阻塞的还是非阻塞的?
  • [linux]socket已经close,为什么用netstat命令查看还是 ESTABLISHED
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • IOS开发之socket网络编程(基于SimpleNetworkStreams的c/s程序)
  • 我的ping程序怎么老是出现Socket operation on non-socket
  • linux客户端程序能否和windows端的服务器程序进行socket通信?
  • socket客户端程序的问题
  • 请教: linux下用c++写最简单的socket程序如何写?
  • 把socket客户端程序和服务端程序放在同一机器上运行,可以吗?
  • 如何清楚linux系统中以退出程序的socket连接?
  • 求助:我的第一个 socket 程序,缺少某些结构的定义
  • gdb 怎么调试socket程序
  • socket程序中,查看error需要什么头文件?
  • 我断开socket服务器日志之后,服务器程序就挂死啦
  • 基于socket的linux和Windows通信程序为什么运行特别慢?
  • 我用单机编译socket和ServerSocket程序,我应该怎样对自己的机器进行设置?
  • 请问如何在linux下用gcc调试socket程序???
  • linux下socket模拟telnet功能的程序,急求
  • 如何在redhat e4下用gcc编译socket程序,(-lsocket无法使用啊)!急,在线等
  • 多线程socket程序莫名其妙接收到SIGALRM信号问题。
  • linux socket程序,出现closed by peer问题
  • 写socket程序的时候,都需要注意哪些信号?
  • 大家一起讨论一下这个程序设计(关于socket实现http协议)。
  • 要编写一个后台的socket通讯程序,各位有没有什么好的建议?
  • java命名空间java.net类socket的类成员方法: socket定义及介绍
  • re socket编程中 ACCEPT返回的socket与原socket(他参数中的)端口号一样吗?
  • java命名空间java.nio.channels类socketchannel的类成员方法: socket定义及介绍
  • libevent2需要从socket读一段数据写入一个socket中,同时发送给另一个socket
  • java命名空间java.nio.channels类serversocketchannel的类成员方法: socket定义及介绍
  • socket 通讯开发包 Simple Sockets
  • java命名空间java.nio.channels类datagramchannel的类成员方法: socket定义及介绍
  • C++ Socket 库 C++ Sockets
  • java命名空间java.net类socket的类成员方法: getsendbuffersize定义及介绍
  • vc做的的socket应用和unix下socket?


  • 站内导航:


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

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

    浙ICP备11055608号-3