| 发表于:2007-04-05 16:46:29 楼主 |
我碰到了以下问题,望大家帮忙解决,谢谢 我的代码是(平台是w2kserver): char buffer[400]={0}; int count =512; fd_zero(&ready); fd_set( csocket , &ready); int r = 0; int reclen = 0; r = select ( 1 , &ready, 0, 0, &vtimeout) ; if ( r > 0) { reclen = recv ( csocket , buff , count , 0 ) ; if (reclen > 0) return reclen; // 读到数据,正常返回 else { return -1; // 有错误发生 active = false; } } 问题是我在与unix系统平台上的软件通讯的时候r返回的是1,而reclen返回的是-1,buff中没数据,而同样的程序,与windods系统平台上的软件通讯的时候buff就有数据。同时我又在windows平台中写了一个通讯程序(使用c++builder6中的socket通讯控件做的)与unix系统平台上的软件通讯的时候buff中也有数据。不知为什么,谢谢。 |
|
|
|
|