网络
Frank-Lee
ITer
展开
-
SOCK_STREAM与SOCK_DGRAM套接口类型
SOCK_STREAM套接口(流套接口)的性质1、不保留任何消息的边界举一个例子:本地主机通过两次独立的write(2)调用向远程主机发送数据,第一次本地进程写入25字节的数据,并通过套接口发送到远程进程,第二次再写入30字节的数据发往远程进程,总共55字节的数据,而远程进程从套接口接收数据时,将消息作为一个完整的单元来接收,或是通过若干次独立的读操作来将数据取走,即接受端并不知道转载 2013-06-17 14:11:28 · 532 阅读 · 0 评论 -
TCP消息边界处理
在前面的几篇中,讲了关于套接字Socket以及利用套接字助手类来进行服务端和客户端之间的通信,在此中间并没有对发送的信息进行任何的处理。在本篇中将会讲一下TCP通信时的信息边界问题。通过套接字或其助手类来接收信息时,是从缓存区里一次性把全部的缘存都读取出来,只要你设置的缓存够大,它就能读取这么多,这样就会导致这样的情况出现。如果服务端连续发送信息到客户端,如我连续发送字符串“message转载 2013-06-17 14:58:52 · 1607 阅读 · 0 评论 -
WinSock编程基础
一.套接字的一些基础知识1.Windows通信相关驱动netio.sys(Network I/O Subsystem)ndis.sys(NDIS Driver)ipnat.sys(IP Network Address Translator)tcpip.sys(TCP/IP Driver)tdtcp.sys(TCP Transport Driver)tdi.sys(TDI转载 2013-06-17 15:50:20 · 2169 阅读 · 0 评论 -
TCP网络编程MSS细节
8.I/O通信从I/O的角度来看,套接字也是文件,它提供了同文件读写(fread()/fwrite())对应的收发数据操作接口:send()/recv()。8.1 发送数据8.1.1 send// The send function sends data on a connected socket.int send(SOCKETs, // [in]转载 2013-06-17 15:51:30 · 966 阅读 · 0 评论 -
关于TCP封包、粘包、半包
Codeproject上的一篇文章http://www.codeproject.com/Articles/11922/Solution-for-TCP-IP-client-socket-message-boundary很多朋友已经对此作了不少研究,也花费不少心血编写了实现代码和blog文档。当然也充斥着一些各式的评论,自己看了一下,总结一些心得。首先我们学习一下这些朋友的心得,他们转载 2013-06-17 17:08:06 · 729 阅读 · 0 评论 -
同步/异步与阻塞/非阻塞的区别
转自:http://blog.csdn.net/weiqubo/article/details/8640072我喜欢用自己的语言通过联系现实生活中的一些现象解释一些概念,当我能做到这一点时,说明我已经理解了这个概念.今天要解释的概念是:同步/异步与阻塞/非阻塞的区别.这两组概念常常让人迷惑,因为它们都是涉及到IO处理,同时又有着一些相类似的地方.首先来解释同步和异步的概念,这两转载 2013-06-19 13:57:12 · 575 阅读 · 0 评论 -
开源免费的C/C++网络库
转自:http://blog.csdn.net/weiqubo/article/details/8730199(1)ACE庞大、复杂,适合大型项目。开源、免费,不依赖第三方库,支持跨平台。http://www.cs.wustl.edu/~schmidt/ACE.html (2)AsioAsio基于Boost开发的异步IO库,封装了Socket,简化基转载 2013-06-19 14:01:05 · 1754 阅读 · 0 评论