![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
网络
MaxLiuZhenGuo
我喜欢简单直白,不冗余繁杂。
展开
-
TCP三次握手及四次挥手详细图解
相对于SOCKET开发者,TCP创建过程和链接折除过程是由TCP/IP协议栈自动创建的.因此开发者并不需要控制这个过程.但是对于理解TCP底层运作机制,相当有帮助. 而且对于有网络协议工程师之类笔试,几乎是必考的内容.企业对这个问题热情之高,出乎我的意料:-)。有时上午面试前强调这个问题,并重复讲一次,下午几乎每一个人都被问到这个问题。 因此在这里详细解释一下转载 2013-07-19 17:09:33 · 602 阅读 · 0 评论 -
TCP三次握手
原文见:http://packetlife.net/blog/2010/jun/7/understanding-tcp-sequence-acknowledgment-numbers/ 如果你正在读这篇文章,很可能你对TCP“非著名”的“三次握手”或者说“SYN,SYN/ACK,ACK”已经很熟悉了。不幸的是,对很多人来说,对TCP的学习就仅限于此了。尽管年代久远,TCP仍是一个相当复杂并且值得研...转载 2018-04-12 15:16:28 · 195 阅读 · 0 评论 -
非阻塞的connect 353页
转自:http://www.cnblogs.com/shiqgfmj/archive/2010/12/29/1919434.html 非阻塞的socket客户端connect()困扰了一下午。因为是非阻塞,不管是否连接上都直接返回,所以就无法知道什么时候连接上。一开始想到网上找资料,可惜不多。于是MSDN,总算找到一句话。With a nonblocking socket, the转载 2017-04-12 16:01:36 · 371 阅读 · 0 评论 -
同步异步,阻塞非阻塞
http://www.cnblogs.com/Anker/p/5965654.html原创 2017-04-12 14:34:48 · 278 阅读 · 0 评论 -
函数 getaddrinfo 学习
最近使用socket编程, 用到这个函数。 网上资料很多,只是有一点没有提到,特记录下。函数原型: int getaddrinfo(const char *node, const char *service, const struct addrinfo *hints, struct addrinfo **res); void freeaddrinfo(struct addrinfo *转载 2017-03-30 13:56:57 · 313 阅读 · 0 评论 -
write和read
socket函数read write 和 send recv之间的区别【转】 2011-02-16 13:36:08| 分类: Linux/Unix|字号 订阅一旦,我们建立好了tcp连接之后,我们就可以把得到的fd当作文件描述符来使用。由此网络程序里最基本的函数就是read和write函数了。ssize_t write(int fd, cons转载 2013-11-02 12:01:04 · 801 阅读 · 0 评论 -
INADDR_ANY
SOCKET编程之INADDR_ANY (2010-06-22 15:23:34)转载▼标签: socket inaddr_any 端口 ip地址 数据包 杂谈分类: VC++编程INADDR_ANY就是指定地址为0.0.0.0的地址,这个地址事实上来表示转载 2013-11-01 17:23:49 · 836 阅读 · 0 评论 -
互斥锁pthread_mutex_t的使用
互斥锁pthread_mutex_t的使用(转载) 2011-09-02 13:02:54| 分类: Linux 编程|字号 订阅1. 互斥锁创建 有两种方法创建互斥锁,静态方式和动态方式。POSIX定义了一个宏PTHREAD_MUTEX_INITIALIZER来静态初始化互斥锁,方法如下: pth转载 2013-11-16 10:58:57 · 634 阅读 · 0 评论 -
linux下socket函数解析
socketsocket()我们使用系统调用socket()来获得文件描述符:#include#includeint socket(int domain,int type,int protocol);第一个参数domain设置为“AF_INET”。第二个参数是套接口的类型:SOCK_STREAM或SOCK_DGRAM。转载 2013-07-20 18:11:58 · 575 阅读 · 0 评论 -
同步与异步--阻塞与非阻塞型I/O
同步阻塞IO在这个模型中,应用程序(application)为了执行这个read操作,会调用相应的一个system call,将系统控制权交给kernel,然后就进行等待(这其实就是被阻塞了)。kernel开始执行这个system call,执行完毕后会向应用程序返回响应,应用程序得到响应后,就不再阻塞,并进行后面的工作。例如,“在调用 read 系统调用时转载 2013-07-20 13:47:04 · 588 阅读 · 0 评论 -
什么是套接字(Socket)?套接字(Socket)是什么意思?(转载)
2012-04-08 10:22:29| 分类: 网络编程 | 标签:socket |字号 订阅应用层通过传输层进行数据通信时,TCP和UDP会遇到同时为多个应用程序进程提供并发服务的问题。多个TCP连接或多个应用程序进程可能需要通过同一个TCP协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提转载 2013-07-20 09:48:07 · 1191 阅读 · 0 评论 -
端口
如果把IP地址比作一间房子 ,端口就是出入这间房子的门。真正的房子只有几个门,但是一个IP地址的端口可以有65536(即:2^16)个之多!端口是通过端口号来标记的,端口号只有整数,范围是从0 到65535(2^16-1)。在Internet上,各主机间通过TCP/IP协议发送和接收数据包,各个数据包根据其目的主机的ip地址来进行互联网络中的路由选择。可见,把数据包顺利的传送到目的主机转载 2013-07-19 20:50:12 · 725 阅读 · 0 评论 -
TCP同步与异步及阻塞模式,多线程+阻塞模式,非阻塞模式简单介绍
首先我简单介绍一下同步TCP编程 与异步TCP编程。在服务端我们通常用一个TcpListener来监听一个IP和端口。客户端来一个请求的连接,在服务端可以用同步的方式来接收,也可以用异步的方式去接收。比如:TcpListene server = new TcpListener(IPAddress.Parse("127.0.0.1"), port);TcpClient tc转载 2013-07-20 11:50:25 · 1535 阅读 · 0 评论 -
什么是套接字(Socket)?套接字(Socket)是什么意思?(转载)
2012-04-08 10:22:29| 分类: 网络编程 | 标签:socket |字号 订阅应用层通过传输层进行数据通信时,TCP和UDP会遇到同时为多个应用程序进程提供并发服务的问题。多个TCP连接或多个应用程序进程可能需要通过同一个TCP协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提转载 2013-07-20 09:44:48 · 3571 阅读 · 0 评论 -
多线程和多进程的区别(小结)
原文来自于:http://blog.csdn.net/hairetz/article/details/4281931很想写点关于多进程和多线程的东西,我确实很爱他们。但是每每想动手写点关于他们的东西,却总是求全心理作祟,始终动不了手。今天终于下了决心,写点东西,以后可以再修修补补也无妨。 一.为何需要多进程(或者多线程),为何需要并发?这个问题或许本身都不是个问题。但是转载 2013-07-19 17:52:39 · 733 阅读 · 0 评论 -
TCP数据段头的标志位
TCP共有六位标志位,分别是:URG、ACK、PSH、RST、SYN和FIN TCP标志位URG: 此标志表示TCP包的紧急指针域(后面马上就要说到)有效,用来保证TCP连接不被中断,并且督促中间层设备要尽快处理这些数据;ACK: 此标志表示应答域有效,就是说前面所说的TCP应答号将会包含在TCP数据包中;有两个取值:0和1,为1的时候表示应答域有效,反转载 2013-07-19 17:48:23 · 1600 阅读 · 0 评论 -
TCP状态转换图
注:主动、被动 与 服务器、客户端没有明确的对应关系。这个图N多人都知道,它排除和定位网络或系统故障时大有帮助,但是怎样牢牢地将这张图刻在脑中呢?那么你就一定要对这张图的每一个状态,及转换的过程有深刻 的认识,不能只停留在一知半解之中。下面对这张图的11种状态详细解析一下,以便加强记忆!不过在这之前,先回顾一下TCP建立连接的三次握手过程,以及 关闭连接的四次握手过程。1、建立连接协议(三次握手)...转载 2018-04-12 16:38:30 · 236 阅读 · 0 评论