网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。
建立网络通信连接至少要一对端口号(socket)。socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口;HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力。
 Socket的英文原义是“孔”或“插座”。作为BSD UNIX的 进程通信机制,取后一种意思。通常也称作" 套接字",用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信。在Internet上的 主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务。Socket正如其英文原义那样,像一个多孔插座。一台主机犹如布满各种插座的房间,每个插座有一个编号,有的插座提供220伏交流电, 有的提供110伏交流电,有的则提供有线电视节目。 客户软件将插头插到不同编号的插座,就可以得到不同的服务。
 根据连接启动的方式以及本地 套接字要连接的目标,套接字之间的连接过程可以分为三个步骤: 服务器监听,客户端请求,连接确认。
(1)服务器监听:是服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态。
(2)客户端请求:是指由客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的地址和 端口号,然后就向服务器端套接字提出连接请求。
(3)连接确认:是指当服务器端套接字监听到或者说接收到客户端套接字的连接请求,它就响应客户端套接字的请求,建立一个新的线程,把 服务器端套接字的描述发给客户端,一旦客户端确认了此描述,连接就建立好了。而服务器端 套接字继续处于 监听状态,继续接收其他客户端套接字的连接请求。

socket编程接口相关推荐

  1. 【Linux】详解socket编程接口

    socket编程接口详解 1. socket常见API 2. IPv4协议的地址信息结构:sockaddr_in结构体 2.1 sockaddr结构体 2.2 in_addr结构体 2.3 socka ...

  2. Android网络功能开发(5)——Socket编程接口

    Socket是编写用TCP/IP协议进行通信的程序的API接口,TCP/IP协议是互联网上使用的通信协议,不局限于HTTP的一问一答方式,可以随发随收. JavaSE平台提供了Socket编程接口,A ...

  3. 朱有鹏 socket编程接口介绍(3)

    朱有鹏 socket编程接口介绍(3) 建立连接 socket(man 2 socket) socket()函数类似于open()函数,用来打开一个网络连接,如果成功则返回一个网络文件描述符(int类 ...

  4. socket本质是编程接口

    网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket. 建立网络通信连接至少要一对端口号(socket).socket本质是编程接口(API),对TCP/IP的封装 ...

  5. 面试必备之:MFC socket编程(浅出+深度:服务端和客户端端口问题)

    要写网络程序就必须用Socket,这是程序员都知道的.而且,面试的时候,我们也会问对方会不会Socket编程?一般来说,很多人都会说,Socket编程基本就是listen,accept以及send,w ...

  6. socket , 套接口还是套接字,傻傻分不清楚

    socket 做网络通信的朋友大都对socket这个词不会感到陌生,但是它的中文翻译是叫套接口还是套接字呢,未必大多数朋友能够分清,今天我们就来聊聊socket的中文名称. socket一词的起源 在 ...

  7. api有哪些 javasocket_基于java的socket编程及API解析

    一.socket通讯过程 1.socket与socket编程简介: socket 被翻译为"套接字",它是计算机之间进行通信的一种约定或一种方式.通过 socket 这种约定,一台 ...

  8. Socket编程(Android客户端+PC服务器端)

    一个多月没有写东西了,感觉像过了一个暑假...废话不多说了,今天来记录一下这两天学习Socket的内容.按照我研究思路来进行一步步的深入Socket. 一.什么是Socket 网络上的两个程序通过一个 ...

  9. 网络编程:(三)网络编程编程接口

    目录 1. unix域协议 2. 套接字选项  socket options 3. 广播和组播 (1)广播  boardcast (2)多播/组播 multicast 1. unix域协议 unix域 ...

最新文章

  1. 你的创业前行之路,亲君愿与你一路相随
  2. 盘点工业界AI项目流程以及边缘设备现状
  3. mysql多个on_在多个查询中插入多行的MySQL ON DUPLICATE KEY UPDATE
  4. 使用 Windbg 分析一个 异步操作 引发的 Crash 异常
  5. linux显示内存状态,Linux显示内存状态
  6. 简述oracle的主要数据库对象,Oracle数据库数据对象分析
  7. _linux中curl命令详解-linux运维
  8. 长沙医学院学位计算机考试内容,湖南长沙医学院2017年9月计算机等级考试报名时间...
  9. oracle 触发器入门,ORACLE PL/SQ入门 (存储过程、触发器)
  10. IDCC2018|北京福通四维科技有限公司副总经理胡海山:顺鑫集团智慧农业领域深耕的数据化转型之路...
  11. Pr一些实用快捷键笔记
  12. 图片格式批量转换器 - 支持 JPG、JPEG、PNG、BMP、GIF 等多种格式图片相互批量转换
  13. win7计算机搜不到无线网,怎么解决win7笔记本搜索不到WiFi
  14. 语音验证码接口对接DEMO示例PHP语言
  15. mysql error 1534_如何解決mysqlimport: Error: 13, Can”t get stat of 的問題 | 學步園
  16. 小白学react之页面BaseLayout框架及微信的坑
  17. python深度讲解_《深度剖析CPython解释器》21. Python类机制的深度解析(第五部分): 全方位介绍Python中的魔法方法,一网打尽...
  18. OverTheWire-Bandit
  19. 腾讯优图提出LAP无监督多视角人脸3D重建算法,高清还原面部细节
  20. 遥遥领先影像组件:dicomobjects.ocx

热门文章

  1. AppIcon和LaunchImage尺寸
  2. 简单了解下DDOS产业
  3. CString、CStringA 和 CStringW
  4. Unsupervised Hyperspectral Mixed Noise Removal Via Spatial-Spectral Constrained Deep Image Prior
  5. 超分辨率(CVPR2020) ~《Video Super-resolution with Temporal Group Attention》
  6. 国际上哪个学校计算机专业好,美国计算机专业大学排名前十有哪些?
  7. 移动目标定位技术笔记1:WiFi、ZigBee、UWB技术
  8. 如何在 Linux 中批量改变文件名?
  9. Java架构师必备知识体系
  10. 安卓混淆-微信混淆同款