对Socket的理解,Socket使用TCP/IP如何实现通信

什么是Socket?

socket是进城间通讯的一种机制

Socket如何实现通讯

两个进程实现通讯,首先要找到对方,由于IP只能唯一标识计算机地址,所以还要加上TCP协议和端口号,因为TCP协议+端口号可以唯一标识一台计算机中的进程

通信流程:
1. 服务器根据地址类型(ipv4,ipv6)、socket类型、协议创建socket
2. 服务器为socket绑定ip地址和端口号
3. 服务器监听端口号请求,随时准备接受客户端发来的连接,这时候服务器的socket处于未开启状态
4. 客户端创建socket
5. 客户端打开socket,根据服务器ip和端口号尝试连接服务器socket
6. 服务器socket收到了客户端socket请求,被动打开,开始接收客户端请求,这时候服务器会给客户端返回一个数据包,并进入阻塞状态。客户端收到服务器的数据包后,客户端连接成功,然后客户端向服务器发送连接信息,服务器收到连接信息后,accept方法返回,解除阻塞状态,连接成功。
7. 客户端向socket写入信息
8. 服务器读取信息
9. 客户端关闭socket
10. 服务器关闭socket
流程如下图:
这里写图片描述

3次握手:
第一次握手:客户端尝试连接服务器,向服务器发送syn包(同步序列编号包),syn=j,客户端进入SYN_SEND状态等待服务器确认
第二次握手:服务器接收到客户端的syn包并确认(ack=j+1),同时向客户端发送一个syn包(syn=k),即syn+ack包,此时服务器进入SYN_RECV状态
第三次握手:客户端收到服务器的syn+ack包,向服务器发送确认包ack(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
握手流程如下图
这里写图片描述

参考文章:
http://www.cnblogs.com/dolphinX/p/3460545.html

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值