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

版权声明:本文为博主原创文章,转载请注明原帖地址,谢谢 https://blog.csdn.net/AooMiao/article/details/65937814

网络协议:

  • 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()方法

猜你喜欢

转载自blog.csdn.net/AooMiao/article/details/65937814