网络通信-----Socket

  • Socket:又称套接字,底层要建立连接通道,通过套接字建立连接,向网络发出应答或请求

  • 套接字(socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口。

网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket,建立socket连接至少需要一对套接字,一个运行于客户端( ClientSocket),另一个运行于服务器端(ServerSocket).

  • web应用程序,提供HTTP服务,端口80,HTTP底层就是通过socket建立连接通信管道,实现数据传输,HTTP是一个TCP的传输协议(方式),一个安全可靠的协议
  • 数据库应用程序(MySQL是移动服务端的数据库应用程序,端口3306)
网络通信要素:
  • ** IP地址:**寻找主机
  • 端口号:没有就找不到程序,默认为80,标示进程的逻辑地址(一个应用程序就是一个进程),有效端口(065535,实际不止这些,01024由系统使用保留,开发中建议使用1024以上的端口)
传输协议(用什么方式进行交互):
  • TCP:传输控制协议
  • 建立连接(即建立的管道),
  • 建立之后数据传输大小不收限制
  • 通过3次握手完成连接,目的是为数据的安全可靠
  • 每次都要进行连接,效率稍低(在通信双方中任何一方主动关闭,连接之前,TCP连接都将被一直保持下去)
  • UDP:用户数据报协议
  • 不需建立连接(eg:广播),将数据及源和目的封装成数据包
  • 不可靠,出现问题,不会有之前的数据
  • 数据大小有限制(64kb之内),避免中间出现误差,大量数据丢失
  • 速度快
socket通信流程:(需要客户端,服务器端)

服务端将socket,--->bind(端口,来标示当前应用程序),--->监听端口(客户端请求连接[同时连接大量客户端连接,会造成连接阻塞])--->accept(客户端请求[建立连接])--->客户端发请求(write)--->服务器端read--->处理请求后回应数据(write操作)--->客户端read数据--->客户端结束连接---服务器接收断开

socket通信流程.png

实现socket服务端监听

  1. C语言实现
  1. CocoeAsyncSocket(第三方框架)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 参考:http://www.2cto.com/net/201611/569006.html TCP HTTP UD...
    F麦子阅读 2,977评论 0 14
  • 一: 网络各个协议:TCP/IP、SOCKET、HTTP 网络七层由下往上分别为物理层、数据链路层、网络层、传输层...
    iYeso阅读 1,453评论 0 13
  • 和在云朵里酝酿已久的雨水一样 我从不觉得自己聪慧 在一整片的大陆面前 总是以最笨拙的方式,直直的坠落 在云端思考的...
    蒋菱阅读 184评论 2 3
  • 一、本月情境 7月着重于ISO9001-2015质量体系贯标外审和重点项目推进。 7月天气极端炎热,锻炼的动力有所...
    严哥阅读 295评论 1 2
  • 第一次来到这里,本来是想和友人看花田的。不巧误撞入向日葵花田,在景区的景图分布中明明看到就是这里。原以为花田会是...
    我是一只沉默的鱼阅读 444评论 0 0