socket的延时技巧

   
  TCP/IP   Winsock编程要点    
   
  蒋勇    
   
  2002.5.23    
   
       
   
  利用Winsock编程由同步和异步方式,同步方式逻辑清晰,编程专注于应用,在抢先式的多任务操作系统中(WinNt、Win2K)采用多线程方式效率基本达到异步方式的水平,应此以下为同步方式编程要点。    
   
  1、快速通信    
   
  Winsock的Nagle算法将降低小数据报的发送速度,而系统默认是使用Nagle算法,使用    
   
  int   setsockopt(    
   
      SOCKET   s,                                    
   
      int   level,                                    
   
      int   optname,                              
   
      const   char   FAR   *optval,      
   
      int   optlen                                  
   
  );函数关闭它    
   
  例子:    
   
  SOCKET   sConnect;    
   
  sConnect=::socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);    
   
  int   bNodelay   =   1;    
   
  int   err;    
   
  err   =   setsockopt(    
   
                  sConnect,    
   
                  IPPROTO_TCP,    
   
                  TCP_NODELAY,    
   
                  (char   *)&bNodelay,    
   
                  sizoeof(bNodelay));//不采用延时算法    
   
  if   (err   !=   NO_ERROR)    
   
  TRACE   ("setsockopt   failed   for   some   reason/n");;    
   
       
   
  2、SOCKET的SegMentSize和收发缓冲    
   
  TCPSegMentSize是发送接受时单个数据报的最大长度,系统默认为1460,收发缓冲大小为8192。    
   
  在SOCK_STREAM方式下,如果单次发送数据超过1460,系统将分成多个数据报传送,在对方接受到的将是一个数据流,应用程序需要增
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值