随笔分类 -  网络编程

socket API详解
摘要:send函数intsend(SOCKETs,constcharFAR*buf,intlen,intflags);不论是客户还是服务器应用程序都用send函数来向TCP连接的另一端发送数据。客户程序一般用send函数向服务器发送请求,而服务器则通常用send函数来向客户程序发送应答。该函数的第一个参数... 阅读全文
posted @ 2014-07-31 16:07 冰花ぃ雪魄 阅读(485) 评论(0) 推荐(0) 编辑
重叠IO
摘要:一、 异步IO 说到重叠模型首先还是提一下异步IO比较好,因为从本质上讲,重叠模型也是一种异步IO模型。 我们知道,相对于计算机执行的其他操作而言,设备IO(文件、管道、套接字等)是比较慢的。于是在多线程结构中就考虑到采用异步的方式进行设备读写操作,即我们告诉系统对设备的读写数据,而同时应用程序的其... 阅读全文
posted @ 2014-07-31 15:55 冰花ぃ雪魄 阅读(310) 评论(0) 推荐(0) 编辑
重叠io操作
摘要:第一章 一. 重叠模型的优点 1. 可以运行在支持Winsock2的所有Windows平台 ,而不像完成端口只是支持NT系统。 2. 比起阻塞、select、WSAAsyncSelect以及WSAEventSelect等模型,重叠I/O(Overlapped I/O)模型使应用程序能达到更佳的系统性... 阅读全文
posted @ 2014-07-31 15:54 冰花ぃ雪魄 阅读(338) 评论(0) 推荐(0) 编辑
WSAGetOverlappedResult函数
摘要:WSAGetOverlappedResult函数通过WSAWaitForMultipleEvents函数来得到重叠操作完成的通知,那么自然也需要一个函数来查询一下重叠操作的结果,定义如下BOOL WSAGetOverlappedResult( SOCKET s, // SOCKET,不用说了 LPW... 阅读全文
posted @ 2014-07-31 11:27 冰花ぃ雪魄 阅读(571) 评论(0) 推荐(0) 编辑
WSAWaitForMultipleEvents
摘要:WSAWaitForMultipleEvents函数 熟悉WSAEventSelect模型的朋友对这个函数肯定不会陌生,不对,其实大家都不应该陌生,这个函数与线程中常用的WaitForMultipleObjects函数有些地方还是比较像的,因为都是在等待某个事件的触发嘛。 因为我们需要事件来... 阅读全文
posted @ 2014-07-31 11:23 冰花ぃ雪魄 阅读(1146) 评论(0) 推荐(0) 编辑
recv函数的用法详解
摘要:recv函数int recv( SOCKET s, char FAR *buf, int len, int flags );不论是客户还是服务器应用程序都用recv函数从TCP连接的另一端接收数据。该函数的第一个参数指定接收端套接字描述符;第二个参数指明一个缓冲区,该缓冲区用来存放recv函数接收到... 阅读全文
posted @ 2014-07-29 17:28 冰花ぃ雪魄 阅读(2266) 评论(0) 推荐(0) 编辑
select,poll,epoll用法
摘要:http://blog.csdn.net/sunboy_2050/article/details/6126712select用法#include #include #include #include int select(int n, fd_set *readfds, fd_set *writ... 阅读全文
posted @ 2014-07-29 16:57 冰花ぃ雪魄 阅读(208) 评论(0) 推荐(0) 编辑
字节序(Endian),大端(Big-Endian),小端(Little-Endian)
摘要:http://www.cppblog.com/tx7do/archive/2009/01/06/71276.html在各种计算机体系结构中,对于字节、字等的存储机制有所不同,因而引发了计算机通信领域中一个很重要的问题,即通信双方交流的信息单元(比特、字节、字、双字等等)应该以什么样的顺序进行传送。如... 阅读全文
posted @ 2014-07-29 16:51 冰花ぃ雪魄 阅读(425) 评论(0) 推荐(0) 编辑
select, iocp, epoll,kqueue及各种I/O复用机制
摘要:http://blog.csdn.net/heyan1853/article/details/6457362首先,介绍几种常见的I/O模型及其区别,如下:blocking I/Ononblocking I/OI/O multiplexing (selectandpoll)signal driven ... 阅读全文
posted @ 2014-07-29 16:50 冰花ぃ雪魄 阅读(149) 评论(0) 推荐(0) 编辑
select、poll、epoll的比较
摘要:linux提供了select、poll、epoll接口来实现IO复用,三者的原型如下所示,本文从参数、实现、性能等方面对三者进行对比。int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct t... 阅读全文
posted @ 2014-07-29 16:44 冰花ぃ雪魄 阅读(230) 评论(0) 推荐(0) 编辑
Linux 非阻塞connect,错误码:EINPROGRESS
摘要:当我们以非阻塞的方式来进行连接的时候,返回的结果如果是 -1,这并不代表这次连接发生了错误,如果它的返回结果是 EINPROGRESS,那么就代表连接还在进行中。 后面可以通过poll或者select来判断socket是否可写,如果可以写,说明连接完成了。 阅读全文
posted @ 2014-07-29 16:36 冰花ぃ雪魄 阅读(419) 评论(0) 推荐(0) 编辑
struct pollfd
摘要:struct pollfd2010年04月15日 星期四 下午 03:59int poll (struct pollfd *fds, size_t nfds , int timeout);struct pollfd {int fd; /* 文件描述符 */short events; /* 等待的事... 阅读全文
posted @ 2014-07-29 16:09 冰花ぃ雪魄 阅读(2351) 评论(0) 推荐(0) 编辑
sockaddr与sockaddr_in
摘要:struct sockaddr { unsigned short sa_family; charsa_data[14]; };此数据结构用做bind、connect、recvfrom、sendto等函数的参数,指明地址信息。但一般编程中并不直接针对此数据结构操作,而是使用另一个与sockaddr等... 阅读全文
posted @ 2014-07-29 15:43 冰花ぃ雪魄 阅读(270) 评论(0) 推荐(0) 编辑
setsockopt的作用
摘要:int setsockopt(SOCKET s,int level,int optname,const char* optval,int optlen);s(套接字): 指向一个打开的套接口描述字level:(级别): 指定选项代码的类型。SOL_SOCKET: 基本套接口IPPROTO_IP: I... 阅读全文
posted @ 2014-07-29 15:37 冰花ぃ雪魄 阅读(167) 评论(0) 推荐(0) 编辑
揭开Socket编程的面纱
摘要:对TCP/IP、UDP、Socket编程这些词你不会很陌生吧?随着网络技术的发展,这些词充斥着我们的耳朵。那么我想问:1. 什么是TCP/IP、UDP?2. Socket在哪里呢?3. Socket是什么呢?4. 你会使用它们吗?什么是TCP/IP、UDP? TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,是一个工业标准的协议集,它是为广域网(WANs)设计的。 UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议。它是属于TCP/IP协议族中的一种。 这里有一张图,表明了. 阅读全文
posted @ 2014-03-04 09:29 冰花ぃ雪魄 阅读(223) 评论(0) 推荐(0) 编辑
Java Socket重要参数讲解
摘要:(转自http://www.cnblogs.com/ggjucheng/archive/2012/01/06/2314679.html)(http://docs.oracle.com/javase/tutorial/java/package/summary-package.html)Java Socket的api可能很多人会用,但是Java Socket的参数可能很多人都不知道用来干嘛的,甚至都不知道有这些参数。backlog用于ServerSocket,配置ServerSocket的最大客户端等待队列。等待队列的意思,先看下面代码public class Main { public s... 阅读全文
posted @ 2014-02-28 16:51 冰花ぃ雪魄 阅读(255) 评论(0) 推荐(0) 编辑
socket通信简介
摘要:“一切皆Socket!”话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket。——有感于实际编程和开源项目研究。我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web 服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型 有哪些?还有socket的基本函数,这些都是本文想介绍的。本文的主要内容如下:1、网络中进程之间如何通信?2、Socket是什么?3、socket的基本操作3.1、socket()函数3.2、bind()函数3.3、li 阅读全文
posted @ 2014-02-28 10:36 冰花ぃ雪魄 阅读(218) 评论(0) 推荐(0) 编辑