黑马日记第九篇——网络编程

----------------------android培训  、java培训、期待与您交流!----------------------
一、概述
网络模型:OSI参考模型、TCP/IP参考模型。
网络通讯要素:IP地址、端口号、传输协议。
OSI参考模型:共七层,从上到下依次为:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。
TCP/IP参考模型:共四层,从上到下依次为:应用层、传输层、网际层、主机至网络层。
IP地址:网络中设备的标识(127.0.0.1为保留字段,本地回环地址,可以用于测试网卡,主机名一般为:localhost)。
端口号:用于标识进程的逻辑地址,标识不同的进程(有效端口为0~65535,一般0~1024为系统保留端口)。
传输协议:TCP与UDP:
UDP:
1,将数据以及源和目的封装在数据包中,不需要建立连接。
2,每个数据包的大小限制在64k以内。
3,因为面向无连接,所以是不可靠协议。
4,因为无需建立连接,所以速度较快。
TCP:
1,需要建立连接,行成传输数据的通道。
2,在连接的通道中进行大数据量的传输,不需要封装成包。
3,通过三次握手完成连接,因此是可靠的协议。
4,由于必须要建立连接,所以相对效率稍低。
Socket:
它是为网络提供服务的一种机制,通信两段必须都有Socket,网络通信其实就是Socket间的通信,数据在两个Socket之间通过IO进行传输。
二、UDP传输
一般步骤:
1,利用UDP传输一般用到两个对象:DatagramSocket、DatagramPacket。
2,建立发送端和接收端。
3,建立数据包。
4,调用Socket的发送方法(send)和接收方法(receive)。
5,关闭Socket。
注:发送端与接收端是两个独立运行的程序。
三、TCP传输
一般步骤:
1,利用TCP传输一般用到两个对象:Socket、ServerSocket。
2,建立客户端与服务端。
3,建立连接(accept)后通过Socket中的IO流进行数据的传输。
4,关闭Socket。
注1:客户端与服务端是两个独立的应用程序。
注2:在利用IO流进行读取和写入过程时,应注意刷新操作,以及给出结束标记,通过shutdowOutput方法可以给写入套接字的输出流打上结束标记。另外,在读取数据时,如果有readLine方法使用,该方法判断一行结束的标记是回车换行符,所以应搭配newLine方法,建议使用PrintWriter或PrintStream作为输出流对象,以为它们的构造函数带有自动刷新的方法,而且可以直接输出换行标记。
四、URL
java中直接提供了URL对象,可以方便地对URL进行操作,其中包含了几乎所有的操作方法:(返回类型均为String)
getFile():获取URL文件名。
getHost():获取主机名。
getPath():获取路径部分。
getPort():获取端口号(如果未指定,则返回-1)。
getProtocol():获取协议名称。
getQuery():获取查询部分。
具体指代关系如下图:





五、URLConnection
通过URL的openConncetion可以获取到该对象,它的内部封装了协议和目的地址,并在内部做了连接动作,所以不需要在写Socket。
另外,URL中的openStream方法相当于:openConnection().getInputStream()。

---------------------- android培训 、java培训、期待与您交流!----------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值