Socket 原理篇

Socket:

  

  socket "插座"的意思,作为进程通信机制,用于描述IP地址和端口,是一个通信链的句柄(两个程序通信用的)

  在Internet上有很多这样的主机,这些主机一般运行了多个服务软件,同时提供几种服务,每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应不同的服务

  http使用80端口 ftp使用 21 端口 smtp使用23端口

Socket有两种类型

  1.Stream

  一种面向连接的Socket,针对于面向连接的TCP服务应用,安全,效率低

  2.DataGram 数据报式

  一种无连接的socket,对应物连接的UDP服务应用,不安全(丢失,顺序混乱,在接受端要分析重排及要求重发),但效率高

 

Socket一般运用模式(服务端 和客户端)

  服务端Socket

    一个负责接受客户端连接请求,不负责与客户端通信

    每成功接收到一个客户端的连接请求,并产生一个对应的套接字

  客户端Socket  

    必须指定要连接的服务端地址和端口

    通过创建一个Socket对象来初始化一个到服务器端的TCP连接

 

Socket通信过程

  服务端:

    申请一个socket

    绑定到一个IP和端口

    开启监听,等待连接

  客户端:

    申请一个socket  

    连接服务器 需指定一个IP和端口

  服务器端接到连接请求后,产生一个新的socket与客户端建立连接并进行通讯,原监听Socket 继续监听

 

 

原文地址:https://www.cnblogs.com/chenanzixue/p/3465106.html