java基础----网络协议及网络通讯

网络协议:

  • TCP:传输控制协议(传输层),三次握手建立连接,保证连接准确性;四次挥手断开连接,报头最小长度20字节
    • 客户端:同步信号SYN=1,随机序列号SEQ=X
    • 服务端:同步信号SYN=1,报文ACK=X+1,随机序列号Y
    • 客户端:同步信号SYN=0,报文ACK=Y+1
  • UDP:用户数据包协议(传输层),面向无连接的协议,报头8字节
  • HTTP:超文本传输协议(应用层),基于请求和响应模式、无状态的协议,特点有:
    • 支持C(客户端)/S(服务器)模式
    • 灵活:允许传输任意类型的数据对象
    • 无连接:每次响应一个请求后就断开连接
    • 无状态:对事务处理没有记忆能力

java网络请求:

Socket:tcp/ip协议的封装和应用
  • TCP编程:对网络通讯质量有要求时,例如传输文件,浏览网页,简单使用过程:
    • 服务器端:定义ServerSocket对象ss,传进端口号参数(例如6666),调用ss.accept()方法,等待客户端连接,注意这方法会线程阻塞,连接成功(accept()执行完)会返回一个Socket对象,通过这个对象获取输入输出流就可以和客户端进行通信了
    • 客户端:定义Socket对象s,传进参数(目标主机IP地址,目标端口号),因为是测试,所以IP填自己IP地址(localhost),端口号填上面的6666,在上面实例化s后就已经连接上服务器端ss了,通过s获取输入输出流就可以和服务器端进行通信了
  • UDP编程:对网络通讯质量要求不高时,例如,实时语音,视频聊天,发生掉包也影响不大
HttpURLConnection:对Http协议的封装和应用,简单使用过程:
  1. 实例化URL对象,传入网络地址
  2. 通过url.openConnection获得HttpURLConnection对象connection
  3. 对connection设置GET或者POST方式决定是请求数据,还是想服务器发送数据
  4. 设置连接时间和读取时间
  5. 获取输入输出流,对流进行转换为容易进行操作的其他流,例如BufferedRead,DataOutPutStream等等
  6. 最后一定要记得对流进行关闭,调用close()方法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值