socket
so__sunshine
这个作者很懒,什么都没留下…
展开
-
socket基础总结
Socket总结 一、Socket Socket是在应用层与TCP/IP协议族之间的一个中间抽象层,是一组网络应用程序的接口,像文件一样,可以使用文件描述符。 网间进程通信由两个进程构成,使用同一种协议,它包括一个五元组(协议,本地IP,远程IP,本地端口,远程端口) 端口:操作系统可分配的资源,由数据结构和IO构成,在网络中可以被寻址,用于标识通信进程。 网络字节序转载 2016-09-21 21:43:39 · 453 阅读 · 0 评论 -
ARP数据报格式
ARP数据报格式 在网络通讯时,源主机的应用程序知道目的主机的IP地址和端口号,却不知道目的主机的硬件地址,而数据包首先是被网卡接收到再去处理上层协议的,如果接收到的数据包的硬件地址与本机不符,则直接丢弃。因此在通讯前必须获得目的主机的硬件地址。ARP协议就起到这个作用。源主机发出ARP请求,询问“IP地址是192.168.0.1的主机的硬件地址是多少”,并将这个请求广播到本地网段(以太网帧转载 2016-11-19 17:28:17 · 1459 阅读 · 0 评论 -
socket输入输出缓冲区以及阻塞模式
socket缓冲区 每个 socket 被创建后,都会分配两个缓冲区,输入缓冲区和输出缓冲区。 write()/send() 并不立即向网络中传输数据,而是先将数据写入缓冲区中,再由TCP协议将数据从缓冲区发送到目标机器。一旦将数据写入到缓冲区,函数就可以成功返回,不管它们有没有到达目标机器,也不管它们何时被发送到网络,这些都是TCP协议负责的事情。 TCP协议独立于 write()转载 2016-11-23 17:03:40 · 633 阅读 · 0 评论 -
TCP数据报结构以及三次握手(图解)
TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的通信协议,数据在传输前要建立连接,传输完毕后还要断开连接。 客户端在收发数据前要使用 connect() 函数和服务器建立连接。建立连接的目的是保证IP地址、端口、物理链路等正确无误,为数据的传输开辟通道。 TCP建立连接时要传输三个数据包,俗称三次握手(Three-转载 2016-11-23 17:15:18 · 439 阅读 · 0 评论 -
TCP数据的传输过程
建立连接后,两台主机就可以相互传输数据了。如下图所示: 图1:TCP 套接字的数据交换过程 上图给出了主机A分2次(分2个数据包)向主机B传递200字节的过程。首先,主机A通过1个数据包发送100个字节的数据,数据包的 Seq 号设置为 1200。主机B为了确认这一点,向主机A发送 ACK 包,并将 Ack 号设置为 1301。 为了保证数据准确到达,目标机器在收到数据包转载 2016-11-23 17:32:53 · 411 阅读 · 0 评论 -
TCP四次握手断开连接
建立连接非常重要,它是数据正确传输的前提;断开连接同样重要,它让计算机释放不再使用的资源。如果连接不能正常断开,不仅会造成数据传输错误,还会导致套接字不能关闭,持续占用资源,如果并发量高,服务器压力堪忧。 建立连接需要三次握手,断开连接需要四次握手,可以形象的比喻为下面的对话: [Shake 1] 套接字A:“任务处理完毕,我希望断开连接。”[Shake 2] 套接字B:“哦,是吗?请转载 2016-11-23 19:24:11 · 280 阅读 · 0 评论 -
多线程实例入门--利用互斥对象实现线程同步
c++利用windows的API来实现多线程的功能 #include #include using namespace std; DWORD WINAPI Fun(LPVOID lpParamter) { while(1) { cout<<"Fun display!\n"; Sleep(1000);} } int main转载 2016-11-24 11:19:58 · 373 阅读 · 0 评论