为了账号安全,请及时绑定邮箱和手机立即绑定

java的socket编程和网络协议的关系的一些疑问

java的socket编程和网络协议的关系的一些疑问

鸿蒙传说 2018-07-22 17:25:04
用socket编程时,没有指定应用层协议就可以直接把client socket的数据发出去到server socket,socket编程不需要使用应用层协议吗?为啥用到了传输层协议(默认好像是TCP)却不用应用层协议?
查看完整描述

2 回答

?
慕少森

TA贡献2019条经验 获得超9个赞

举个例子:
Http是应用层协议,TCP是网络层协议,应用层在TCP/IP四层架构中位于TCP的上一层
TCP连接在实现时要借助Socket(套接字 IP+端口号)
Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP 网络上的应用程序

HTTP连接需要指明资源的URL,发出请求的应用不知道服务器的IP,虽然域名服务器也是要把域名解析成IP地址,但不属于应用所关心的范畴,是网络层应该完成的工作。所以Http连接属于无状态的短连接,若再请求其他数据,需要再重新建立连接。客户端向服务器发送请求后,服务器才知道客户端的存在。

TCP连接实现时需要指明IP地址和端口号,就可以跟目的主机通过三次握手建立联系,该连接一直保持直到某一方提出取消连接,通过四次握手关闭连接。Socket支持TCP/UDP协议,如果使用TCP协议,那么socket连接就是TCP连接。


查看完整回答
反对 回复 2018-07-25
?
慕运维8079593

TA贡献1876条经验 获得超5个赞

tcp协议是4层协议,所有应用层协议都是基于tcp协议基础之上封装的协议。socket连接是tcp层连接。如果有实现特殊的需要,如实现web页面访问,使用http的7层协议实现。

查看完整回答
反对 回复 2018-07-25
  • 2 回答
  • 0 关注
  • 684 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信