recv是socket编程中最常用的函数之一,在阻塞状态的recv有时候会返回不同的值,而对于错误值也有相应的错误码,分别对应不同的状态,下面是我针对常见的几种网络状态的简单总结。 首先阻塞接收的recv有时候会返回0,这仅在socket被正常关闭时才会发生。而当拔掉设备网线的时候,recv并不会发...
分类:
其他好文 时间:
2014-10-20 16:44:23
阅读次数:
143
设置超时的起因
在我们的httpClient请求,当我们的请求地址错误或者请求无法在正常时间内连接并且得到反馈抑或是我们的服务器正处在关闭维修的状态
,这时,我们发送httpClient请求的客户端会因为线程中一直在等待我们请求的反馈信息而造成进程阻塞。如果这时候我们不做任何处理会造成客户端无反应(在安卓系统中会造成手机应用的崩溃),这时候,我们就需要设置请求httpClient的超时时间来解...
分类:
Web程序 时间:
2014-10-20 15:17:12
阅读次数:
247
现在明确一下阻塞(Block)这个概念。当进程调用一个阻塞的系统函数时,该进程被置于睡眠(Sleep)状态,这时内核调度其它进程运行,直到该进程等待的事件发生了(比如网络上接收到数据包,或者调用sleep指定的睡...
分类:
系统相关 时间:
2014-10-20 11:57:26
阅读次数:
182
monkey patch指的是在运行时动态替换,一般是在startup的时候.
用过gevent就会知道,会在最开头的地方gevent.monkey.patch_all();把标准库中的thread/socket等给替换掉.这样我们在后面使用socket的时候可以跟平常一样使用,无需修改任何代码,但是它变成非阻塞的了.
之前做的一个游戏服务器,很多地方用的import json,后来发现ujs...
分类:
其他好文 时间:
2014-10-20 11:44:41
阅读次数:
224
pthread_cond_wait()用于阻塞当前线程,等待别的线程使用pthread_cond_signal()或pthread_cond_broadcast来唤醒它。pthread_cond_wait()必须与pthread_mutex 配套使用。pthread_cond_wait()函数一进入...
分类:
其他好文 时间:
2014-10-19 23:12:41
阅读次数:
388
在ORACLE数据库当中,有时候会使用ALTER SYSTEM KILL SESSION 'sid,serial#'杀掉一个会话进程,但是使用这个SQL语句杀掉会话后,数据库并不会立即释放掉相关的资源,有时候你会发现锁定的资源很长时间也不会释放,即使会话状态为“KILLED”,依然会阻塞其它会话。 ...
分类:
数据库 时间:
2014-10-19 10:11:56
阅读次数:
306
windows的socket在创建后,默认是阻塞调用的,也就是说函数recv,recvfrom,send,sendto等函数都是阻塞的;那么我们如何将他们设置成非阻塞调用呢?我们可以通过windows为我们提供的ioctlsocket 函数实现;先给出一个例子:
BOOL LoadSocketSystem(void)
{
WORD wVersionRequested;
SOCKADDR_IN...
分类:
其他好文 时间:
2014-10-18 12:43:34
阅读次数:
268
锁是事务获取的一种控制资源,用于保护数据资源,防止其它事务对数据进行冲突的或不兼容的访问。我们目前只要学习两种基本的锁模式就可以,它们分别是共享锁和排他锁。共享锁主要是在读操作时使用,读操作一旦完成,数据库就会立即释放资源上的共享锁,而且多个事务可以同时持有同一数据资源上的共享锁。而排他锁主要是.....
分类:
其他好文 时间:
2014-10-17 18:10:19
阅读次数:
176
1.MFC程序的初始化过程;消息映射机制;运行时类型识别;动态创建;永久保存;消息传送2.SendMessage()和PostMessage()向本进程窗口或者其他进程窗口发送消息的区别:SendMessage():阻塞函数;用于调用指定窗口的内部程序,直到处理完成以后才返回 PostMessa.....
分类:
编程语言 时间:
2014-10-17 11:38:23
阅读次数:
208
android手机端发送一个“filename”字符串到PC,PC验证字符后返回要传输文件的文件名,然后手机端再把接收到的文件名发送给PC端,进行校验,如果PC端校验成功,那么PC端就开始传输这个文件给手机端,手机端就接收这个文件。...
分类:
移动开发 时间:
2014-10-17 10:15:56
阅读次数:
343