• 网络编程-UDP-TCP


    网络编程-UDP-TCP)

    UDP 特点:(面向无连接)(聊天)

    1、将数据及源和目的封装成数据包中,不须要建立连接。(封包。无连接)
    2、每一个数据包的限制大小在64k内。(小数据)
    3、因无连接。是不可靠协议。(不可靠。丢数据)
    4、不须要建立连接,速度快。(速度快)

    TCP 特点:(面向连接)(下载)

    1、建立连接,形成数据传输的通道。(传输,连接)
    2、在连接中进行大数据量传输。(大数据)
    3、通过三次捂手完毕连接。是可靠协议。(可靠。在? 我在。我知道你在了)
    4、必须建立连接,效率会稍低。(速度慢)

    (网络编程-Socket)(Socket也称套接字)

    1、Socket就是为网络服务提供的一种机制。
    2、通信的两端都有Socket。
    3、网络通信事实上就是Socket间的通信。
    4、数据在两个Socket间通过IO传输。


    注意:Socket能够理解为码头,有码头才有船能够对货(数据)进行装卸(读写)。

    可是因为船运输的方式不同。所以有了不同的服务方式。

    一个是UDP,另外一个是TCP。

    练习:建立一个文本转换server

    * client给服务端发送一个文本文件,服务端会将文本转成
    * 大写在返回给client
    * 并且client能够不断的进行文本转换,当client输入over时

    思路:
    * client
    * 既然是操作设备上的数据,那么就能够使用IO技术,并依照
    * IO的操作规律来思考,
    * 源:键盘录入
    * 目的:网络设备,网络输出流
    * 并且操作的是文本数据。能够选择字符流。
    * 步骤:
    * 1.建立服务
    * 2.获取键盘录入
    * 3.将数据发给服务端
    * 4.服务端返回大写数据
    * 5.关闭资源

    public static void main(String[] args) throws Exception {
    Socket s=new  Socket();
    // 定义读取键盘数据的流对象
    BufferedReader bufr=new 
    BufferedReader(new InputStreamReader(System.in));
    // 定义目的,将数据写入到socket输出流。发给服务端
    /*BufferedWriter  bufout=new 
    BufferedWriter(new OutputStreamWriter(s.getOutputStream()));*/
    // 定义一个socket读取流,读取服务端返回的大写信息
    BufferedReader   bufin=new 
    BufferedReader(new InputStreamReader(s.getInputStream()));

    PrintWriter  out=new PrintWriter(s.getOutputStream(),true);
    String line=null;
    while ((line=bufr.readLine())!=null) {

    if ("over".equals(line)) {
    break;
    }
    out.println(line);
    /*bufout.write(line);
    bufout.newLine();
    bufout.flush();*/
    String str=bufin.readLine();
    System.out.println("servce:"+str);

    }
    bufr.close();
    s.close();
    }


    }

    服务端
    *源:socket读取流
    *目的:socket输入流

    public static void main(String[] args) throws Exception {
    ServerSocket  ss=new ServerSocket(10005);
    Socket s=ss.accept();
    // 读取socket读取流中的数据
    BufferedReader bufin=new 
    BufferedReader(new InputStreamReader(s.getInputStream()));
    // 目的。

    socket输出流。将大写数据写入到socket输出流。并发送给client
    BufferedWriter bufout=new 
    BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
    String line=null;
    while ((line=bufin.readLine())!=null){
    System.out.println(line);
    bufout.write(line.toUpperCase());
    bufout.newLine();
    bufout.flush();
    }
    s.close();
    ss.close();
    }



    }



  • 相关阅读:
    new
    如何在win7上面安装python的包
    进程
    网络编程模块的使用
    面向对象基础与实例
    类与对象的属性与使用方法
    基础面向对象与面向过程
    RE模块垃圾回收机制
    常用函数模块
    thinkphp6 find_in_set使用实例
  • 原文地址:https://www.cnblogs.com/yjbjingcha/p/6855806.html
Copyright © 2020-2023  润新知