网络编程socket

网络编程总结

什么是网络编程?

网络编程从大的方面就是说对信息的发送接收。

通过操作相应API调度计算机资源硬件,并且利用管道(网线)进行数据交互的过程。

更为具体的涉及:网络模型、套接字、数据包

**所谓socket通常也称作"套接字",用于描述IP地址和端口,**是一个通信链的句柄。应用程序通常通过"套接字"向网络发出请求或者应答网络请求。

我们开发的网络应用程序位于应用层,TCP和UDP属于传输层协议,在应用层如何使用传输层的服务呢?在应用层和传输层之间,则是使用套接字来进行分离。

套接字就像是传输层为应用层开的一个小口,应用程序通过这个小口向远程发送数据,或者接收远程发来的数据;而这个小口以内,也就是数据进入这个口之后,或者数据从这个口出来之前,是不知道也不需要知道的,也不会关心它如何传输,这属于网络其它层次的工作。

Socket实际是传输层供给应用层的编程接口。传输层则在网络层的基础上提供进程到进程问的逻辑通道,而应用层的进程则利用传输层向另一台主机的某一进程通信。Socket就是应用层与传输层之间的桥梁

使用Socket编程可以开发客户机和服务器应用程序,可以在本地网络上进行通信,也可通过Internet在全球范围内通信。

wuliao

wuliao

网络编程的目的:

直接或间接地通过网络协议与其他计算机实现数据交换,进行通讯。

网络编程中两个主要的问题:

准确定位网络上一台或多态主机(IP);定位主机上的特定应用程序(端口号,确定哪个应用程序进行通信的);

找到主机后如何可靠高效地进行数据传输。

网络通信要素

IP和端口号

192.168.开头的就是私有地址,范围为192.168.0.0-192.168.255.255.专门为组织机构内部使用。

IP地址分类:IPV4,IPV6;

公网地址,私有地址(局域网使用)

网络通信协议

  • OSI参考模型(7层)

  • TCP/IP参考模型(4层) 应用层http,ftp,传输层tcp,udp,网络层ip,物理+数据链路层

    核心数据一层层封装,通过物理层传输数据,到另一边再一层层拆封,最后展现出需要的数据

因ip地址太抽象,不容易记忆,出现域名这一词,拿着域名请求资源,首先是先根据域名解析服务器把域名解析成ip地址,拿着ip找到对应的网络服务器请求资源(本机c盘有文件hosts,里面可以配置ip地址和对应的域名,没有的话,再通过DNS服务器,找主机)

TCP协议

使用tcp协议签,须先建立tcp连接,形成传输数据通道;

传输前,采用“三次握手”方式,点对点通信,是可靠的;

TCP协议进行通信的两个应用进程:客户端,服务端;

在连接中可进行大数量的传输;

传输完毕,需释放已建立的连接。

TCP建立连接, 即"三次握手"

1.客户端发送连接到服务器端, 等待服务器端确认

2.服务器端收到客户端的请求, 向客户端回复确认收到

3.客户端收到服务器的确认, 向服务器回复确认收到

TCP断开连接, 即"四次挥手"

1.客户端发起中断请求, 用来关闭客户端到服务器端的连接

2.服务器端收到中断请求, 并回复确认收到

3.服务器端发起中断请求, 用来关闭服务器到客户端的连接

4.客户端收到中断请求, 并回复确认收到

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值