在客户端中recv返回值是0,是不是代表着服务器sock连接断开

在客户端中recv返回值是0,是不是代表着服务器sock连接断开,第1张

TCP协议: 服务器端:tcp_serverc [cpp] view plaincopyprint #include #include #include #include #include int main(int argc, char argv[]) { int server_sockfd;//服务器端套接字 int client_sockfd;//客户端套接字 int len; struct soc

更新一下之前写的Excel的数据库类,将其改成函数的形式,调用更简单(省却了生成类实例的步骤)。现在这个代码在工作中用了一年多,已经比较健壮。若有问题,请留言指出或与我联系。
这些代码有如下优势:
•无需任何配置。在VBA中新建模块,并把代码复制转帖过去即可使用。
•有以下函数:执行数据库语句、查询数据库、结果复制到单元格(Excel中最常用)、将Excel表格上传到数据库。基本覆盖Excel中对数据库的常用 *** 作。
•会在立即窗口显示数据库错误信息,方便查错。
•在数据库连接字符串字典中配好数据库连接信息后,数据库访问时可直接使用配好的链接字符串。
具体的函数用法已经写在下面代码注释里。简单描述一下:
•dqQueryToArray(sql, connection_string) 查询数据库,返回一个二维数组
•dbQueryOne(sql, connection_string) 查询数据库,返回单个变量。
•dbQueryToCell(sql, range, connection_string, withHeader) 查询数据库后,将结果显示在range开始的区域中;withHeader控制是否显示列名。
•dbExec(sql, necction_string) 执行数据库语句;无返回值
•dbInsertRange(table, range, connection_string, is_empty) 将本Excel文件的range区域里的数据插入到数据库的表table。其中is_empty控制在上传数据前是否清空table的原数据。
其它就看一下代码吧:
' EXCEL的ADO数据库 *** 作函数库
' 这些代码应该放在Excel的VBA模块中,类模块的名字为database,并以以下形式引用:
'
' res = dbQueryToArry(sql, connection_string)
' ' 返回sql的查询结果,结果为一个二维数组
' res = dbQueryOne(sql, connection_string)
' ' 返回sql的查询结果,但只返回第一个数据(相当于数据库查询结果的左上角那个数据)
' dbQueryToCell sql, save_to_range, connection_string, withHeader
' ' 将sql的查询结果直接写入到以save_to_range开头的单元格区域中
' ' withHeader控制是否复制表头,默认为true(复制表头)
'
' 其中参数sql为数据库查询语句,connection_string为数据库连接字符串。
'
' 比如要连接SQL数据库,并已经设置ODBC,连接字符串为:
' "Provider=MSDASQL;DSN=odbc_name;UID=username;PWD=password;database=database_name;"
' 如果未设置ODBC,连接字符串为:
' "driver={SQL Server};server=service_name_or_ip;uid=username;pwd=password;database=database_name;"
' 其中最后面的database变量可省略。对于SQL Server,推荐使用后一种方法。
'
' 如果数据来源为Excel文件,connection_string参数可省略
'
' 其它功能:内置数据库的连接字符串、查询存储过程
'
' Author: zhang@zhiqiangorg, 2014-03-01 v4
' url: >ajax获取controller返回值为问号
ajax获取controller返回值为问号
在ajax请求中,如果controller返回值为问号,则可能是请求参数不正确,或者是服务器端出现异常,可以检查服务器端代码,查看是否有错误信息。

1 先ping一下远程数据库的ip或者机器名。如果是没有返回值,则说明网络都不通,肯定无法连数据库。
2 如果能ping通,再telnet远程数据库的端口,oracle服务默认端口是1521。如telnet 19216812 1521,如果能够telnet不成功,那肯定无法连数据库。
3 如果上述都不行,把本地机器的防火墙关了。再试上述两步。
4 如果能telnet,ORA-12170的意思就是连接超时。如果能够到远程数据库本地去 *** 作,可以先在数据库服务器本身去连一下你数据库。如果不成功,则说明是数据库服务器本身有问题。比如监听是否启动、数据库服务是否已经到了open阶段。
5 如都不行,可以按照下列地址,来解决一下这个问题:>两张图让你对服务器返回值不再纠结,其实就是过滤吧<null>  类型替换成 "" 不就得了

// 网络请求成功后,拿出 response object 在这里进行处理

扩充了 NSDictionary的类型,将字典里<null>的值进行替换
// 使用后的效果如下
好了,我是大兵布莱恩特,欢迎加入博主技术交流群,iOS 开发交流群

![QQ20180712-0png](>

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/12989048.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-29
下一篇 2023-05-29

发表评论

登录后才能评论

评论列表(0条)

保存