求助达人:SOCKET()函数返回值异常的问题
於黾 2010-12-11 02:46:41 新建C++工程,利用SOCKET从以太网中读取数据,写入数据库中,数据库用的是ADO连接,C++版本是6.0
现在的现象是:必须配ODBC数据源(即使是错误的也可以,但是必须有这个名字),然后还要执行连接数据库的语句,SOCKET()返回值才是正常的1000左右,否则就会变成一个10位数,很诡异,不知道哪里出了问题。
代码如下:
s = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
IPPROTO_TCP的值是6,我改成IPPROTO_IP(值是0)现象还是一样。
而我照着做的样本工程,也是同样的代码,就没有这个问题,现在不明白差在哪。
ADO连接我用了msado15.dll,
AfxOleInit(); //初始化COM库,
m_pConnection.CreateInstance("ADODB.Connection");
m_pConnection->Open("Data Source=xrd;UID=xrd;PWD=gbjd;","","",adModeUnknown);//连接ODBC数据源
由于直接利用ORACLE自带连接的方式有时通信返回值是假的,即使网线拔掉也返回通信成功,所以改成了从ODBC获得数据源字符串,样本工程也是这样做的,没问题,新建工程如果不执行连接,SOCKET返回值就是8开头的一个10位10进制数,为什么?