网络协议:
- 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协议的封装和应用,简单使用过程:
- 实例化URL对象,传入网络地址
- 通过url.openConnection获得HttpURLConnection对象connection
- 对connection设置GET或者POST方式决定是请求数据,还是想服务器发送数据
- 设置连接时间和读取时间
- 获取输入输出流,对流进行转换为容易进行操作的其他流,例如BufferedRead,DataOutPutStream等等
- 最后一定要记得对流进行关闭,调用close()方法