1.网络编程的目的
与不同的计算机进行数据交换
2.网络编程需要解决的问题
①怎么定位对方计算机上的特定应用:IP/端口号 ②如何实现高效传输:网络通信协议
3.通信要素一:IP和端口号
1.IP:计算机在网络中的身份证 2.在Java中使用InetAddress表示IP 3.IP有ipv4和ipv6两类,有万维网和局域网 4.域名:www.baidu.com 5.本地回路地址:127.0.0.1 对应着:localhost 6.如何实例化InetAddress:两个方法:getByName(String host)返回InetAddress对象,因为InetAddress没有对外暴露构造器,只能通过类来调静态方法生成该类的对象. getLocalHost()返回的是本机IP. 两个常用方法:getHostName()返回对象表示的域名 / getHostAddress()返回的是该对象的IP. 7.端口号:0-65535
4.通信要素二:协议
TCP:①建立TCP连接,形成通路 ②三次握手. 保证发送方和接收方的发送和接受功能正常. 次数多了收益不大,次数少了不够安全. 四次挥手,关闭链路。 关于三次挥手和四次挥手的具体原理,今天没学,以后学了再补充。不过简单举个例子就是想象一下我和女朋友发语音。 我:我是大老师。 雪乃收到后发送:我知道你是大老师,我是雪乃。(说明客户端发送功能正常,服务端接收功能正常) 我收到后发送:我知道你是雪乃,同时也知道你知道我是大老师。(此时说明客户端接收功能正常,服务器端发送功能正常) 雪乃收到后:连接成立
③通信的进程:客户端/服务端 ④可进行大数据量传输 ⑤传输完毕需要关闭通道.效率低 TCP类似打电话
UDP ①不需要建立连接(不安全) ②每个数据包64k内 ③无需释放资源/开销少/速度快,就像看视频,数据丢失一点没关系,但是不能卡.
|