Chinaunix

标题: UNIX C SOCKET编程的问题 [打印本页]

作者: AllenYao    时间: 2005-07-13 15:33
标题: UNIX C SOCKET编程的问题
公司的服务器是AIX,网络读写函数如下:

  1. int     TRead( int iSockId , char * pcaBuf , int  iLen )
  2. {
  3.     long        iLength = 0 ;
  4.     long        N ;

  5.     while( 1 ) {
  6.         N = read( iSockId , pcaBuf+iLength , iLen-iLength ) ;
  7.         if( N<0 )
  8.                 return -1 ;
  9.         iLength += N ;
  10.         if( iLength == iLen )
  11.                 break ;
  12.         if( iLength<=0 )
  13.                 return  -2 ;
  14.     }
  15.            return iLen ;
  16. }

  17. int     TWrite( int iSockId , char * pcaBuf , int  iLen )
  18. {
  19.     long        iLength = 0 ;
  20.     long        N ;
  21.    
  22.     while( 1 ) {
  23.         N = write( iSockId , pcaBuf+iLength , iLen-iLength ) ;
  24.         if( N<0 )
  25.             return -1 ;
  26.         iLength += N ;
  27.         if( iLength == iLen )
  28.             break ;
  29.         if( iLength<=0 )
  30.                 return  -2  ;
  31.     }
  32.     return iLen ;
  33. }
复制代码

我在使用这两个函数时,多数时候没有问题,但有时会出现不明故障,不知道原因何在,请大虾指点,谢谢!
作者: 巡道工    时间: 2005-07-13 16:53
标题: UNIX C SOCKET编程的问题
是不是应该在操作要读写的socket之前先判断一下吧,select(0,&fdread,NULL,NULL,&tmv);
作者: SirFang    时间: 2005-07-13 18:17
提示: 作者被禁止或删除 内容自动屏蔽
作者: wujiajia    时间: 2005-07-13 20:46
标题: UNIX C SOCKET编程的问题
因该不是这两函数的问题!




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2