Socket介绍

作者: 阿里高级软件架构师 | 来源:发表于2018-04-21 12:14 被阅读0次

我们如果想要了解socket通信,我们就必须先了解TCP/IP,UDP,那什么是TCP/IP呢?

什么是TCP/IP、UDP

 TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,是一个工业标准的协议集,它是为广域网(WANs)设计的。

 UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议。它是属于TCP/IP协议族中的一种。

 这里有一张图,表明了这些协议的关系。

                                                                        图1

 TCP/IP协议族包括运输层、网络层、链路层。现在你知道TCP/IP与UDP的关系了吧。

Socket在哪里呢?

 在图1中,我们没有看到Socket的影子,那么它到底在哪里呢?还是用图来说话,一目了然。

 原来Socket在这里。

Socket是什么呢?

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

你会使用它们吗?

 前人已经给我们做了好多的事了,网络间的通信也就简单了许多,但毕竟还是有挺多工作要做的。以前听到Socket编程,觉得它是比较高深的编程知识,但是只要弄清Socket编程的工作原理,神秘的面纱也就揭开了。

 一个生活中的场景。你要打电话给一个朋友,先拨号,朋友听到电话铃声后提起电话,这时你和你的朋友就建立起了连接,就可以讲话了。等交流结束,挂断电话结束此次交谈。   生活中的场景就解释了这工作原理,也许TCP/IP协议族就是诞生于生活中,这也不一定。

 先从服务器端说起。服务器端先初始化Socket,然后与端口绑定(bind),对端口进行监听(listen),调用accept阻塞,等待客户端连接。在这时如果有个客户端初始化一个Socket,然后连接服务器(connect),如果连接成功,这时客户端与服务器端的连接就建立了。客户端发送数据请求,服务器端接收请求并处理请求,然后把回应数据发送给客户端,客户端读取数据,最后关闭连接,一次交互结束。

相关文章

  • Socket介绍

    我们如果想要了解socket通信,我们就必须先了解TCP/IP,UDP,那什么是TCP/IP呢? 什么是TCP/I...

  • socket介绍

    socket接口主要包括以下几个: •socket():创建一个socket。 •bind():绑定到本地指定的I...

  • socket编程

    一切皆socket!本文介绍socket基础,socket的基本操作,并对socket中的TCP过程说明,还有一个...

  • Socket详解(三)

    Socket详解(一) Socket详解(二) 前两篇文章已经分明介绍传输层与网络层;本篇文章介绍链路层。 介绍链...

  • Ping笔记(二)

    函数介绍(续) 重要的函数: socket int socket(int family, int type, in...

  • 温故之.NET Socket通信

    上一篇文章介绍了内存映射文件,这篇文章我们介绍一种用得更加广泛的方式——Socket 通信 Socket 介绍 S...

  • Android中Socket编程(三)

    LocalSocketImpl介绍 Socket implementation used for android....

  • Socket详解(四)

    Socket详解(一)Socket详解(二)Socket详解(三) 前三篇文章已经分别介绍了传输层、网络层、网络接...

  • 20170926 http服务和apache(一)

    Socket 套接字http服务介绍httpd介绍 一、Socket 套接字 在建立通信连接的每一端,进程间的传输...

  • Socket 编程之 BIO

    本文介绍基于 BIO 实现 Socket 编程的方法及问题。 目录 BIO 简介 BIO Socket 代码示例 ...

网友评论

    本文标题:Socket介绍

    本文链接:https://www.haomeiwen.com/subject/ynqxlftx.html