java知识点二-TCP和UDP的联系和用途

一.网络通讯的三要素时什么?

1.IP地址:网络中身背的标示,可用主机名:localhost

2.端口号:用于标示进程的逻辑地址。0~65535

3.传输协议:通讯的规则:常用TCP和UDP

二.TCP和UDP的用途

UDP:
1.将数据源和目的封装到数据包中,不需要建立连接
2.每个数据包的大小限制在64k以内
3.因无连接,是不可靠协议
4.不需要建立连接,速度快
主要用于:聊天,对讲机就是UDP的,面向无连接。即不管在不在,知不知道,它只管发送,求的是速度。
  也不管丢不丢数据,追求速度快。数据被分成包分批传输。

  TCP:
1.建立连接,形成传输数据的通道。
2.在连接中进行大量数据的传输。
3.通过三次握手完成连接,是可靠协议。
4.必须建立连接,效率会少低
主要用于:电话通话。必须连接,对方同意才可以发送数据,不能丢失数据。
 
所以,在使用中:
当对可靠性的要求不是很高,对准确性无要求(不需要准确存储),但要求速度快时,可以用UDP.
类似于聊天,对讲机等声音方面的业务。
当对可靠性要求比较高,必须要有较高的可靠性时就用TCP,但速度会稍微降低。如文件和程序等。

三.传输

1.UDP传输

UDP两个端点:udp发送端和udp接收端

udp发送端

1.建立udp的socket服务。

DatagramSocket ds=new DatagramSocket()

2.明确数据,并将数据封装到数据包中。

byte[] data="datadatadata".getBytes();

DatagramPacket  dp=new DatagramPacket(buf, buf.length , InetAddress.getByName(‘ip’),port );

3.用socket服务的send方法将数据包发送出去

ds.send(dp);

4.关闭资源

ds.close();

udp接收

1.建立udp的socket服务。

DatagramSocket ds=new DatagramSocket()

2.定义数据包,用于存储数据。

byte[] buf=new byte[1024];

DatagramPacket  dp=new DatagramPacket(buf, buf.length );

3.用socket服务的receive方法将收到的数据存储到定义好的数据包中

ds.receive(dp);

4.通过数据包的特有方法获取到具体的数据内容,如IP,端口,数据等。

String ip=dp.getAddress().getHostAddress();

String data=new String(dp.getData() , 0 , dp.getLength());

int port=dp.getPort();

5.关闭资源

ds.close();

2.TCP传输

TCP两个端点:tcp客户端和tcp服务器端

tcp客户端

1.建立tcp的socket服务,明确地址和端口。

Socket s=new Socket(ip,port);

2.获取socket输出流,发给服务端

OutputStream out=s.getOutputStream();

out.write("".getBytes());

3.获取socket输入流

InputStream in=s.getInputStream();

4.关闭资源

s.close();

tcp服务器端

1.建立tcp服务端的socket服务,并监听一个端口。

ServerSocket ss=new ServerSocket(port);

2.通过accept方法获取连接的客户端对象

Socket s=ss.accept();

3.获取客户端发送过来的数据

InputStream in=s.getInputStream();

4.关闭资源

s.close();

ss.close();


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值