socket C
文章平均质量分 70
haoyu_linux
先做知识的搬运工,然后再谈创造。
展开
-
AF_UNSPEC、AF_INET和AF_INET6之间的关系
ai_family参数指定调用者期待返回的套接口地址结构的类型。它的值包括三种:AF_INET,AF_INET6和AF_UNSPEC。如果指定AF_INET,那么函数九不能返回任何IPV6相关的地址信息;如果仅指定了AF_INET6,则就不能返回任何IPV4地址信息。AF_UNSPEC则意味着函数返回的是适用于指定主机名和服务名且适合任何协议族的地址。如果某个主机既有AAAA记录(IPV6)地址,转载 2015-03-16 10:36:12 · 1607 阅读 · 0 评论 -
linux socket详解
1、socket()函数int socket(int domain, int type, int protocol);参见/usr/include/bits/socket.hsocket函数对应于普通文件的打开操作。普通文件的打开操作返回一个文件描述字,而socket()用于创建一个socket描述符(socket descriptor),它唯一标识一个socket转载 2015-03-16 10:58:32 · 402 阅读 · 0 评论 -
如何设置linux socket为非阻塞
将一个socket 设置成阻塞模式和非阻塞模式,使用fcntl方法,即:设置成非阻塞模式:先用fcntl的F_GETFL获取flags,用F_SETFL设置flags|O_NONBLOCK; 即: flags = fcntl(sockfd, F_GETFL, 0); //获取文件的flags值。 f转载 2015-03-16 15:27:39 · 10131 阅读 · 3 评论 -
tcp的三次握手流程
建立TCP需要三次握手才能建立,而断开连接则需要四次握手。整个过程如下图所示:先来看看如何建立连接的。首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源。Client端接收到ACK报文后也向Server段发生ACK报文,并分配资源,这样TCP连接就建立了。那如何断开连接呢?简单的过程如下:【注意】中断连接端可以是Cl转载 2015-03-16 15:25:52 · 421 阅读 · 0 评论 -
linux中定义的几个网络报文的结构体
1、UDP协议UDP协议是建立在IP协议基础之上的,用在传输层的协议。0 16 32 ------------------------------------------------------- | UDP源端口 | UDP目的端转载 2015-03-16 15:53:02 · 1002 阅读 · 0 评论 -
原始套接字
基于原始套接字编程 在开发面向连接的TCP和面向无连接的UDP程序时,我们所关心的核心问题在于数据收发层面,数据的传输特性由TCP或UDP来保证: 也就是说,对于TCP或UDP的程序开发,焦点在Data字段,我们没法直接对TCP或UDP头部字段进行赤裸裸的修改,当然还有IP头。换句话说,我们对它们头部操作的空间非常受限,只能使用它们已经开放给我们的诸如源、目的I转载 2015-03-16 15:58:48 · 652 阅读 · 0 评论 -
关于select中fd限制问题
select 是多路复用,或异步模型中经常用到的一个系统调用。 基本原型为: int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout); 该函数的一个缺点就是nfds不能太大。上限为1024.为什么会有这样的限制,今天就来一起看看se转载 2015-05-18 09:48:16 · 804 阅读 · 0 评论 -
TCP状态转移图学习总结 (转)
这是网络编程的基础,tcp的状态转移图说到底就是一个状态机的不同状态之间的转换关系以及触发这些状态需要的条件,一共存在11个状态,我们来逐一分析: 1.CLOSED:起始点,在超时或者连接关闭时候进入此状态。 2.LISTEN:svr端在等待连接过来时候的状态,svr端为此要调用socket, bind,listen函数,就能进入此状态。此称为应用程序被动打开(等待客户端来连接)。转载 2015-07-07 11:11:36 · 431 阅读 · 0 评论 -
TCP协议中的三次握手和四次挥手(图解)
建立TCP需要三次握手才能建立,而断开连接则需要四次握手。整个过程如下图所示:先来看看如何建立连接的。首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源。Client端接收到ACK报文后也向Server段发生ACK报文,并分配资源,这样TCP连接就建立了。那如何断开连接呢?简单的过程如下:【注意】中断连接端可以是Cl转载 2015-08-03 10:54:25 · 302 阅读 · 0 评论