Oracle(oci)与socket问题, 急!!!!!!!! socket如果采用的是阻塞模式,就会出现你这种情况。如果不是阻塞模式,可能会好些。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 SOCKET为非阻塞模式读SOCKET缓冲区数据函数:int sock::WaitRead(int sec, int msec, int MaxLen, char *buf, int *buflen){ int ret; int fd; fd_set readbits; struct timeval timer; int ReadSock; int numbytes,bsize; int RevLen = 0; if (SockMode == SOCKMODESERVER) ReadSock = SConnect; else ReadSock = SClient; assert( ReadSock != 0); fd = ReadSock; timer.tv_sec = sec; timer.tv_usec = msec; FD_ZERO(&readbits); FD_SET(fd, &readbits); ret = select(fd+1, &readbits, NULL, NULL, &timer);#ifdef _WIN32 if (FD_ISSET(fd, &readbits)) //有数据 { ioctlsocket(ReadSock, FIONREAD, (u_long *)&numbytes);// bsize = min(numbytes, MaxLen); RevLen = recv(ReadSock, (char *)buf, MaxLen,0); }#else if (FD_ISSET(fd, &readbits)) { ioctl(ReadSock, FIONREAD, &numbytes);// bsize = min(numbytes, MaxLen); RevLen = recv(ReadSock, buf, MaxLen,0); }#endif else //无有数据 { return 0; //ÎÞ±¨ÎÄ }// assert(RevLen != -1); if (RevLen == -1) ret = -1; else { *buflen = RevLen; ret = 1; } return ret;} 求一本有关数据库的书籍 求一SQL语句。 Buffer Hit 虚高的原因是什么 初学者问一个设计表的问题 insert into 如何一次插入多条记录 如何取得过程和函数 关于ORACLE安装的问题,急呀! 如何将Oracle中的一个表的数据以txt文件的形式导出!!! sql语句问题?能不能用一句sql语句查出一个char字段里的值,是否都是数字? 请教分页锁问题 菜鸟提问几个问题:创建好数据库后,表空间是否需要创建,是使用system表空间吗,需要先连接数据库后建用户和表吗?语法又是啥呢? 在线求救,Oracle数据库里分组后想查询每组里的某条记录怎么办?
读SOCKET缓冲区数据函数:int sock::WaitRead(int sec, int msec, int MaxLen, char *buf, int *buflen)
{ int ret;
int fd;
fd_set readbits;
struct timeval timer;
int ReadSock;
int numbytes,bsize;
int RevLen = 0; if (SockMode == SOCKMODESERVER)
ReadSock = SConnect;
else
ReadSock = SClient; assert( ReadSock != 0); fd = ReadSock;
timer.tv_sec = sec;
timer.tv_usec = msec;
FD_ZERO(&readbits);
FD_SET(fd, &readbits);
ret = select(fd+1, &readbits, NULL, NULL, &timer);#ifdef _WIN32
if (FD_ISSET(fd, &readbits)) //有数据
{
ioctlsocket(ReadSock, FIONREAD, (u_long *)&numbytes);
// bsize = min(numbytes, MaxLen);
RevLen = recv(ReadSock, (char *)buf, MaxLen,0);
}
#else
if (FD_ISSET(fd, &readbits))
{
ioctl(ReadSock, FIONREAD, &numbytes);
// bsize = min(numbytes, MaxLen);
RevLen = recv(ReadSock, buf, MaxLen,0);
}
#endif
else //无有数据
{
return 0; //ÎÞ±¨ÎÄ
}// assert(RevLen != -1);
if (RevLen == -1)
ret = -1;
else
{
*buflen = RevLen;
ret = 1;
} return ret;
}