• UDP 与 TCP简单入门理解示例


    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.net.ServerSocket;
    import java.net.Socket;
    

    //服务器端的代码 写了一个简单的匿名多线程 无锁机制
    public class TCP_ServerDemo { public void testTCP_Thread(){ new Thread() { public void run() { ServerSocket ss = null; Socket s =null;
                    byte[] b = new byte[1024];
              try {
                ss = new ServerSocket(8888);

               } catch (IOException e)
              {
                e.printStackTrace();
              }
    while(true) { try { s = ss.accept(); System.out.println("连接到一个客户端"); InputStream inputStream = s.getInputStream();int len =0; while ( (len = inputStream.read(b)) != -1){ String str = new String(b,0,len); System.out.println(str); } OutputStream os = s.getOutputStream(); os.write("客户端你好信息已经收到".getBytes()); s.shutdownOutput(); os.close(); inputStream.close(); s.close(); ss.close(); } catch (IOException e) { e.printStackTrace(); } } } }.start(); } public static void main(String[] args) { new TCP_ServerDemo().testTCP_Thread(); } }




    //TCP客服端
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.net.Socket;

    public class TCP_Demo {

    public static void main(String[] args) {

    try {
    //1Socket 建立需要连接到的主机地址和端口
    Socket s = new Socket("127.0.0.1",8888);

    OutputStream os = s.getOutputStream();
    InputStream in = s.getInputStream();

    os.write("hello".getBytes());
    s.shutdownOutput(); //告诉服务器发送完成


    byte[] b = new byte[1024];
    int len =0;
    while ( (len = in.read(b)) != -1){
    String str = new String(b,0,len);
    System.out.println(str);
    }

    os.close();
    s.close();
    } catch (Exception e) {
    e.printStackTrace();
    }
    }

    }









    //简单的udp客服端
    public class UDP_Demo {

    public static void main(String[] args) {

    try {
    //建立数据接口端口
    DatagramSocket ds = new DatagramSocket();
    byte[] data = "udp come in".getBytes();

    //数据打包
    DatagramPacket dp = new DatagramPacket(data, data.length, InetAddress.getLocalHost(), 9999);

    //发送数据
    ds.send(dp);
    ds.close();

    } catch (Exception e) {
    e.printStackTrace();
    }
    }
    }
    //udp服务器端
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    import java.net.SocketException;

    public class UDP_ServerDemo {
    public static void main(String[] args) {

    try {
    //建立数据接口端口
    DatagramSocket ds = new DatagramSocket(9999);

    byte[] bytes = new byte[1024];
    DatagramPacket dp = new DatagramPacket(bytes, bytes.length);

    ds.receive(dp);
    String str = new String(dp.getData(),0,dp.getLength());

    System.out.println(dp.getAddress().getHostAddress());
    System.out.println(str);

    ds.close();
    } catch (Exception e) {
    e.printStackTrace();
    }

    }
    }


    坚持
  • 相关阅读:
    以后面试官再问你三次握手和四次挥手,直接把这一篇文章丢给他
    聊聊面试中常问的GC机制
    四面快手、终拿Offer,想告诉你的一些事情
    深入浅出14个Java并发容器
    Dubbo 在 K8s 下的思考
    一文带你深入浅出Spring 事务原理
    如何高效选择一款消息队列?
    当面试官要你介绍一下MQ时,该怎么回答?
    淘宝双11促销背后采用什么架构技术来实现网站的负载均衡
    Android 更改按钮样式 Button Styles
  • 原文地址:https://www.cnblogs.com/gaoSJ/p/12831059.html
Copyright © 2020-2023  润新知