您的位置:首页 > 理论基础 > 计算机网络

网络编程--传输协议tcp/udp

2017-08-11 00:44 645 查看
udp:面向无连接

1.不需要连接,要封包并指定要发的地址,端口

2.每个数据包不超64kb

3.无连接不可靠

4.无连接速度快

飞秋、视频广播软件、

tcp:面向连接

1.必须建立连接,建立传输通道

2.在连接中进行大数据量传输,不用封包,就在通道里面传

3.通过三次握手完成建立连接,是可靠协议(第一次:老师问张三在吗    第二次:张三说在的   第三次:老师回应哦在的)

4.连接,效率会低

下载

那么这些复杂的协议呢,java就为我们封装好了对象 socket  所以网络编程即socket编程

主机上的软件/应用程序(端口) 即可理解为socket(插座/码头)

网络通信Socket

Socket是为网络服务提供的一种机制,通信的两端都有Socket,网络通信其实就是Socket通信,数据在两个Socket间是通过IO传输。

DatagramSocket

此类表示用来发送和接收数据报包的套接字.在 DatagramSocket 上总是启用 UDP 广播发送

DatagramPacket

此类表示数据报包。数据报包用来实现无连接包投递服务。每条报文仅根据该包中包含的信息从一台机器路由到另一台机器(路由:找一目的地)

需求一(udp发送端):通过Udp传输方式,将一段数据发送出去

思路:

(1),建立udpsocket服务

(2),提供数据,并将数据封装到数据包中

(3),通过socket服务的发送功能,将数据发送出去

(4),关闭资源
import java.net.*;
class UdpSend
{
public static void main(String[] args) throws Exception {
//1,创建udp服务,通过Datagramsocket()构造函数;
DatagramSocket ds = new DatagramSocket(9999);
//指定发送端口号9999,那么接收端接收的就是9999端口发送的数据
//2,提供数据并将数据封装到数据包,将数据发送到10000端口
byte[] buf = "shu ju fa song".getBytes();
DatagramPacket dp = new
DatagramPacket(buf,buf.length,InetAddress.getByName("27.19.74.69"),10000);
//3,通过socket服务,将已有的数据包发送出去,通过send方法。send(DatagramPacket p)
ds.send(dp);
//4,关闭资源
ds.close();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐