网络
A_lier_inner_road
这个作者很懒,什么都没留下…
展开
-
网络编程socket基本API详解(转)
转自: http://www.cnblogs.com/luxiaoxun/archive/2012/10/16/2725760.htmlsocket socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信。 socket起源于UNIX,在Unix一切皆文件哲学的思想下,socket是一种”打开—读/写—关闭”模式的实现转载 2017-03-07 21:01:02 · 532 阅读 · 0 评论 -
Socket 基础编程(二)
在上一篇博客中,我们总结了基本的Socket C/S结构的用法。但该实例仅仅限于1vs1的C/S交互中,当我们需要处理多对一的交互时,服务器就必须支持并发处理。我们知道在服务器accept函数收到建联请求后,会反馈一个新的fd用于与客户端交互,此时通常我们就可以新起线程专门处理与该客户端的交互,而主线程则返回继续进行accept阻塞监听。但这样的代价是明显的,线程的损耗不光是资源占用的问题,还涉及到原创 2017-03-07 21:26:26 · 364 阅读 · 0 评论 -
Socket 基础编程(一)
一个通常意义上的Socket一般是分为Client与Server。 Server端需要实现:建立Socket-》绑定端口-》监听端口-》处理建链请求-》数据交互-》关闭链接。 Client端相对简单些:建立Socket-》发起TCP建链-》发送数据请求-》数据交互-》关闭链接。如下是各API函数对应的TCP业务动作: Client 的connect对应的TCP中的SYN建联请求,而服务器的a原创 2017-03-07 21:10:35 · 803 阅读 · 0 评论 -
Socket 基础编程(三)
在上一篇文章中,我们已经采用了select式非阻塞socket进行处理,可是在实测中发现,业务处理速率依旧低下,很多connect请求超时。 通过分析发现,问题原因实际是由于socket的状态造成的。 对于TCP链接而言,默认状态下,无论是accept还是recv与send都是阻塞态,即需要收到数据包或者完成其动作,处理线程才能进行下一步工作。 知道了上述原理,那如何才能解决呢? 答案就是:原创 2017-03-07 21:38:38 · 328 阅读 · 0 评论