Socket 简介

1.什么是Socket?
Socket是对TCP/IP 协议的抽象,是操作系统对外开放的接口。socket起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”,都可以用“打开open –> 读写write/read –> 关闭close”模式来操作。我的理解就是Socket就是该模式的一个实现,socket即是一种特殊的文件,一些socket函数就是对其进行的操作(读/写IO、打开、关闭).


2.Socket通信流程

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

3.Socket相关的面试题
编写一个网络应用程序,有客户端和服务器端,客户端向服务器发送一个字符串,服务器收到该字符串后将其打印到命令行上,然后向客户端返回该字符串的长度,最后客户端输出服务器端返回的该字符串的长度,分别用TCP和UDP两种方式去实现

3.1 TCP实现

TCPServer
LengthCalculator


TCPClient

3.2 UDP实现

UDPServer

UDPClient

Socket 简介及面试题相关推荐

  1. Socket简介及客户端服务器连接实例

    注:  在客户端游戏开发中,使用HTTP进行网络通信的比较少,一般使用的都是Socket进行通信.而HTTP一般用于网页或者网页游戏. [Socket简介] 1.套接字(socket)概念 套接字(s ...

  2. socket简介和udp网络程序-发送、接收数据

    socket简介 不同电脑上的进程之间如何通信 首要解决的问题是如何唯一标识一个进程,否则通信无从谈起! 在1台电脑上可以通过进程号(PID)来唯一标识一个进程,但是在网络中这是行不通的. 其实TCP ...

  3. Socket网络编程面试题

    Socket网络编程面试题 1.TCP和UDP的区别: 2.流量控制和拥塞控制的实现机制: 3.重传机制: 4.滑动窗口机制: 5.多线程如何同步: 6.进程和线程的区别: 7.进程间通讯的方式有哪些 ...

  4. 【Web Socket简介】

    Web Socket简介 1. Web Socket 是 HTML5 的新协议,允许服务器端向客户端发送数据,是一种全双工.双向的通信方式,并且它可以保持长时间通信. 概念理解: [1]全双工:意思就 ...

  5. Android查缺补漏(IPC篇)-- 进程间通讯之Socket简介及示例

    本文作者:CodingBlock 文章链接:http://www.cnblogs.com/codingblock/p/8425736.html 进程间通讯篇系列文章目录: Android查缺补漏(IP ...

  6. python socket 简介

    Python 提供了两个基本的 socket 模块. 第一个是 Socket,它提供了标准的 BSD Sockets API. 第二个是 SocketServer, 它提供了服务器中心类,可以简化网络 ...

  7. linux 本地socket 简介

    Unix domain socket 又叫 IPC(inter-process communication 进程间通信) socket,用于实现同一主机上的进程间通信.socket 原本是为网络通讯设 ...

  8. iOS进阶_Socket(Socket简介代码演练)

    网络通讯三要素 TCP & UDP 三次握手 断开连接的四次握手 Socket套接字 了解了上面的概念,我们开始演练一下Socket #import "ViewController. ...

  9. 网络编程2之Socket简介和java.net包

    一.Socket 通信链路的端点就被称为"套接字"(英文名Socket) 是提供给应用程序的接口 图文说明Socket Socket通信原理 二.java.net包 Java.ne ...

  10. Unix domain socket 简介(进程间通信,进程通信)

    Unix domain socket 又叫 IPC(inter-process communication 进程间通信) socket,用于实现同一主机上的进程间通信.socket 原本是为网络通讯设 ...

最新文章

  1. 设计模式-创建型模式-建造者模式
  2. ubuntu server 10.04 LTS(64位)装不了花生壳的解决方法
  3. 类加载机制-双亲委派,破坏双亲委派--这一篇全了解
  4. 操作系统(2) -- 进程管理
  5. 14、ORACLE下的基本SQL操作
  6. ImagesSprite V1.1.1 Beta发布
  7. Origin2017绘制3D饼状图 去掉指定图例
  8. SVN A C D M G U R I的含义
  9. Android9.0添加HIDL
  10. [转]SQL Server 2000执行计划成本(2/5)
  11. windows快速创建文本文档的几个方法快捷键和
  12. uni-app个人中心页开发
  13. 罗马数字转换python_Python简单实现阿拉伯数字和罗马数字的互相转换功能示例
  14. PostgreSQL 从cmin/cmax到combo cid
  15. 灰度拉伸python_对比度拉伸(一些基本的灰度变换函数)基本原理及Python实现
  16. tp5框架中调用支付宝线上资金预授权alipay.fund.auth.order.app.freeze接口
  17. 【LeetCode】309. Best Time to Buy and Sell Stock with Cooldown 最佳买卖股票时机含冷冻期(Medium)(JAVA)
  18. 比太阳还要明亮!天文学家发现使上最亮星体
  19. 华为防火墙实战配置教程,太全了
  20. Java基础概念——变量联系-计算公交车的人数

热门文章

  1. ora 01033 linux,数据库ORA-01033错误解决办法
  2. 经验模态分解(EMD)
  3. filmimpact安装教程_【更新】Premiere Pro CC 转场插件:FilmImpact 1 FilmImpact 2 v3.0.2
  4. python tkinter canvas
  5. Hadoop 核心原理(贼全面)
  6. Java 获取本机IP地址
  7. OpenSIPS Crash 宕机的初步解决办法(二)
  8. ImageOptim图片压缩工具免费版
  9. scara机器人用户坐标系标定与工具坐标(TCP)标定
  10. 巴斯勒相机的ip掩码_相机IP和带宽设置