求助:有关socket()函数返回值的问题,返回值异常?

於黾 2010-12-11 02:00:13
新建C++工程,利用SOCKET从以太网中读取数据,写入数据库中,数据库用的是ADO连接,C++版本是6.0

现在的现象是:必须配ODBC数据源(即使是错误的也可以,但是必须有这个名字),然后还要执行连接数据库的语句,SOCKET()返回值才是正常的1000左右,否则就会变成一个10位数,很诡异,不知道哪里出了问题。
...全文
166 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
於黾 2010-12-11
  • 打赏
  • 举报
回复
代码如下:
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进制数,为什么?

4,360

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧