TCP和UDP的简单实现与运用

传输控制协议(TCP):TCP(传输控制协议)定义了两台计算机之间进行可靠的传输而交换的数据和确认信息的格式,以及计算机为了确保数据的正确到达而采取的措施。协议规定了TCP软件怎样识别给定计算机上的多个目的进程如何对分组重复这类差错进行恢复。协议还规定了两台计算机如何初始化一个TCP数据流传输以及如何结束这一传输。TCP最大的特点就是提供的是面向连接、可靠的字节流服务。

用户数据报协议(UDP):UDP(用户数据报协议)是一个简单的面向数据报的传输层协议。提供的是非面向连接的、不可靠的数据流传输。UDP不提供可靠性,也不提供报文到达确认、排序以及流量控制等功能。它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。因此报文可能会丢失、重复以及乱序等。但由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。

1.TCP模拟客户端与服务器的连接

  • 客户端:

    public class TcpClientDemo02 {
         
        public static void main(String[] args) {
         
    
            try {
         
                //1.创建一个socket连接
                Socket socket = new Socket(InetAddress.getByName("127.0.0.1"), 9000);
                //2.创建一个输出流
                OutputStream os = socket.getOutputStream();
                 
                //3.读取文件
                FileInputStream fis = new FileInputStream(new File("www.jpg")); //文件路径,默认在根目录
                //4.写出文件
    
                byte[] buffer = new byte[1024]; //建立缓冲区
                int len;
                while ((len=fis.read(buffer))!=-1){
         
                    os.write(buffer,0,len);
                }
    
                //通知服务器已发送完毕
                socket.shutdownOutput();
    
                //确定服务器接收完毕,才能断开服务器
                InputStream inputStream = socket.getInputStream();
                ByteArrayOutputStream baos = new ByteArrayOutputStream();
                byte[] buffer2=new byte[1024];
                int len2;
                while ((len2=inputStream.read(buffer2))!=-1){
         
                    baos.write(buffer2,0,len2);
                }
                System.out.
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值