今天搞tcp链接弄了一天,前面创建socket,绑定,监听等主要分清自己的参数,udp还是tcp的。好不容易调通了,然后就是一个需求,当客户端主动断开连接时,服务端也要断开连接,这样一下次客户端请求链接的时候才能成功链接。 然后就开始找各种方法。其中简单的是看recv()返回为0,表明断开了链接,但 ...
分类:
其他好文 时间:
2016-07-31 22:04:33
阅读次数:
411
Tcp异常 昨研发报异常,据CMCC说是我方服务器主动断开的,于是怀疑是超时设置过短,于是我抓包,由于我接触socket时日尚短,搞不清为什么三次握手成功之后我方服务器会立刻发送fin 今天本来做实验观察进程IP复用情况,却无意中揭开了此问题的面纱,特此记录 我们首先来说说,ip复用的情况,具体ip ...
分类:
其他好文 时间:
2016-07-30 19:42:24
阅读次数:
153
如果不想程序在查询数据时卡死或等待过长时间,一般不推荐在node中开启一个连接后全部查询都用这个链接并且不关闭。因为node里面的mysql不像php里的那样会在完成查询后断开,只要不主动断开,连接一直存在,当连接数量达到一定数量时就会产生严重的阻塞,出现各种延时和卡死现象。在并发量较大时,可以通过 ...
分类:
数据库 时间:
2016-05-24 15:17:05
阅读次数:
495
在进行Socket长连接时,若服务器或客户端出现异常时,另外一端对Socket对话进行操作时,程序会出现无法访问已释放的对象的问题。例如客户端出现问题主动断开Socket时,当服务器操作Socket时,比如主动断开Socket会话,那么程序会出现“无法方位已释放的对象”,是由于客户端的原因导致服务器 ...
在一些对安全性要求较高的场景下。ssh的超时时间是管理员预先设置好的,在闲置一段时间后ssh连接会自己主动断开。这样的情况下假设通过ssh运行脚本,而脚本运行时间又比較长的话。会导致sshclient和server长时间无交互而超时,命令运行失败。 使用bash子进程能够解决这样的问题,思路是由子进 ...
分类:
系统相关 时间:
2016-04-17 14:32:26
阅读次数:
329
从这一篇博文起,我们开始剖析Muduo网络库的源码,主要结合《Linux多线程服务端编程》和网上的一些学习资料!
(一)TCP网络编程的本质:三个半事件
1. 连接的建立,包括服务端接受(accept) 新连接和客户端成功发起(connect) 连接。TCP 连接一旦建立,客户端和服务端是平等的,可以各自收发数据。
2. 连接的断开,包括主动断开(close 或shutdown) 和被动断开...
分类:
其他好文 时间:
2016-04-04 01:36:55
阅读次数:
344
在Mysql的默认设置中,如果一个数据库连接超过8小时没有使用(闲置8小时,即28800s),mysqlserver将主动断开这条连接,后续在该连接上进行的查询操作都将失败,将出现:error 2006(MySQL server has gone away)!。查看mysql server超时时间:...
分类:
数据库 时间:
2016-01-14 15:41:51
阅读次数:
162
在Mysql的默认设置中,如果一个数据库连接超过8小时没有使用(闲置8小时,即28800s),mysqlserver将主动断开这条连接,后续在该连接上进行的查询操作都将失败,将出现:error 2006(MySQL server has gone away)!。查看mysql server超时时间....
分类:
数据库 时间:
2015-09-23 10:33:49
阅读次数:
153
这两天弄个PHP调用 SVN 同步 update 多台服务器更新的程序,为了避免 commit 的时候不会被堵塞卡半天得想个办法只请求触发,而不需要等待程序 update 完成返回结果这样耗时太长,所以研究过了下如何让PHP主动断开连接的方法。搞了一下午,发现很多问题,还好最终还是弄出来了,主要是 Nginx 太坑。。废话不多说,下面上代码:...
分类:
Web程序 时间:
2015-07-15 06:59:02
阅读次数:
167
非阻塞模式下,建立连接没有调用send()和recv()进行数据交互的情况怎么判断服务端连接主动断开?
通过recv()函数,没有数据时返回-1,服务端断开返回0,通过返回0判断服务端是否断开
unsigned long u32NonBlock = 1;
if ( ioctlsocket(pDlg->m_s32Socket, FIONBIO, &u32NonBlock) ) ...
分类:
其他好文 时间:
2014-09-02 14:12:54
阅读次数:
171