Socket套接字通信原理

Socket套接字通信原理

Tcp/IP协议关系图

 

 

Socket在哪里? 

原来Socket在这里

Socket是什么呢?

       Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口.在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议.

TCP协议

三次握手

四次握手断开

UDP协议

 

问题

1.为什么握手需要3次,断开需要4次?

2.阻塞和非阻塞的实现原理?

欢迎大家关注我的博客!如有疑问,请加QQ群:135430763共同学习!

时间: 2024-12-03 08:42:48

Socket套接字通信原理的相关文章

Windows Socket网络编程(二) 套接字编程原理

一.客户机/服务器模式 在TCP/IP网络中两个进程间的相互作用的主机模式是客户机/服务器模式(Client/Server model).该模式的建立基于以下两点:1.非对等作用:2.通信完全是异步的.客户机/服务器模式在操作过程中采取的是主动请示方式: 首先服务器方要先启动,并根据请示提供相应服务:(过程如下) 1.打开一通信通道并告知本地主机,它愿意在某一个公认地址上接收客户请求. 2.等待客户请求到达该端口. 3.接收到重复服务请求,处理该请求并发送应答信号. 4.返回第二步,等待另一客户

【转】Windows Socket网络编程(二)----套接字编程原理

Windows Socket 网络编程(二) -- 套接字编程原理作者: 冰点工作室 小鹰 一.客户机/服务器模式在TCP/IP网络中两个进程间的相互作用的主机模式是客户机/服务器模式(Client/Server model).该模式的建立基于以下两点:1.非对等作用:2.通信完全是异步的.客户机/服务器模式在操作过程中采取的是主动请示方式: 首先服务器方要先启动,并根据请示提供相应服务:(过程如下)1.打开一通信通道并告知本地主机,它愿意在某一个公认地址上接收客户请求.2.等待客户请求到达该端

python socket网络编程步骤详解(socket套接字使用)_python

一.套接字套接字是为特定网络协议(例如TCP/IP,ICMP/IP,UDP/IP等)套件对上的网络应用程序提供者提供当前可移植标准的对象.它们允许程序接受并进行连接,如发送和接受数据.为了建立通信通道,网络通信的每个端点拥有一个套接字对象极为重要.套接字为BSD UNIX系统核心的一部分,而且他们也被许多其他类似UNIX的操作系统包括Linux所采纳.许多非BSD UNIX系统(如ms-dos,windows,os/2,mac os及大部分主机环境)都以库形式提供对套接字的支持.三种最流行的套接

IPC——流套接字通信

Linux进程间通信--使用流套接字 前面说到的进程间的通信,所通信的进程都是在同一台计算机上的,而使用socket进行通信的进程可以是同一台计算机的进程,也是可以是通过网络连接起来的不同计算机上的进程.通常我们使用socket进行网络编程,这里将会简单地讲述如何使用socket进行简单的网络编程.   一.什么是socket socket,即套接字是一种通信机制,凭借这种机制,客户/服务器(即要进行通信的进程)系统的开发工作既可以在本地单机上进行,也可以跨网络进行.也就是说它可以让不在同一台计

c++-一个关于C++多线程socket 套接字的问题

问题描述 一个关于C++多线程socket 套接字的问题 如下博客中的代码是不是缺客户端的代码了,本人是初学者,菜鸟一枚,想要个全的呆猫,麻烦谁提供一下,谢啦http://blog.csdn.net/chw1989/article/details/7453217 解决方案 http://blog.csdn.net/u012592081/article/details/38274881一个简单的socket tcp编程. 解决方案二: 简单的SOCKET编程完全没达到你的要求,文件传输,你可以增加

文件操作-socket套接字文件传输问题,非文本文档无法传输

问题描述 socket套接字文件传输问题,非文本文档无法传输 Linux下使用套接字文件传输,只能传输文本文件,非文本文件读取时无法完全读入,读了很少一部分就停止读入了,求大神解决! 解决方案 最好有报头和报体,报头存放身份识别和报体长度等信息. 报体如果是二进制流,则需要读取原生二进制,读取长度为报体给出的长度. 所以先定义传输格式再传输,这样不管接收什么样的文件都不会有问题了. 希望能够帮到你.

visual studio 2008-VS2008创建socket套接字阻塞,没有返回值

问题描述 VS2008创建socket套接字阻塞,没有返回值 VS2008下编写wince的MFC程序,在Debug模式下运行调试正常,在release模式下运行到socket(AF_INET,SOCK_STREAM,IPPROTO_TCP) 阻塞,没有返回值,这是什么情况??

关于c++ socket套接字

问题描述 关于c++ socket套接字 char buff[1024] = "hello,i am v "; char buff2[512]; cin >> buff2; //strcpy(buff, buff2); send(sclient, buff, strlen(buff), 0); send(sclient, buff2, strlen(buff2), 0); 我想发送两部分数据给服务器端,可是只有第一部分能发出去,第二部分无论如何服务器端都接收不到,请问我这段

c++-请教一个SOCKET套接字的问题

问题描述 请教一个SOCKET套接字的问题 int socket(int domain, int type, int protocol); 请问下上面这句话 我看到有的人写的时候用的 不是INT类型 而是 SOCKET SS=socket....... 请问下INT和 SOCKET能一样么?我试过 结果是一样的,但是不太明白所以来请教一下各位. 解决方案 SOCKET应该就是一个socket句柄类型,而windows下各种句柄都是dword型的数所以用int也一样,你可以转到SOCKET的定义看