TCP-UDP-Java实现

UDP_Client
package TcpAndUdp;

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

public class UDP_Client {
    public static void main(String[] args) {
        try {
            DatagramSocket socket = new DatagramSocket();
            InetAddress localhost = InetAddress.getByName("localhost");
            byte[] bytes = "hehe".getBytes();
            DatagramPacket datagramPacket = new DatagramPacket(bytes, bytes.length, localhost, 9999);
            socket.send(datagramPacket);
            socket.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}
UDP_Service
package TcpAndUdp;

import java.net.DatagramPacket;
import java.net.DatagramSocket;

public class UDP_Service {
    public static void main(String[] args) {
        try {
            DatagramSocket socket = new DatagramSocket(9999);
            byte[] bytes = new byte[1024];
            DatagramPacket datagramPacket = new DatagramPacket(bytes, 1024);
            while (true) {
                socket.receive(datagramPacket);
                int length = datagramPacket.getLength();
                String msg = new String(bytes, 0, length);
                System.out.println("收到信息" + msg);
                if (msg.equals("hehe")) {
                    break;
                }
            }
            socket.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
TCP_Client
package TcpAndUdp;


import java.io.*;
import java.net.Socket;

public class TCP_Client {
    public static void main(String[] args) throws Exception {
        Socket localhost = new Socket("localhost", 19992);
        OutputStream os = localhost.getOutputStream();
//        PrintWriter printWriter = new PrintWriter(os);
//        printWriter.write("年后");
//        printWriter.flush();
        BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(os));
        bufferedWriter.write("jvsdavdas");
        bufferedWriter.flush();
        localhost.shutdownOutput();
        InputStream inputStream = localhost.getInputStream();
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
        String s = bufferedReader.readLine();
        System.out.println(s);
        inputStream.close();
        bufferedReader.close();
        os.close();
//        printWriter.close();
        bufferedReader.close();
        localhost.close();
    }
}
TCP_Service
package TcpAndUdp;

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;

public class TCP_Service {
    public static void main(String[] args) throws Exception {
        ServerSocket serverSocket = new ServerSocket(19992);
        while (true) {
            Socket accept = serverSocket.accept();
            ServiceThread serviceThread = new ServiceThread(accept);
            serviceThread.start();
        }
    }

    private static class ServiceThread extends Thread {
        private Socket accept;

        public ServiceThread(Socket accept) {
            this.accept = accept;
        }

        @Override
        public void run() {
            super.run();
            InputStream inputStream = null;
            BufferedReader bufferedReader = null;
            OutputStream outputStream = null;
            try {
                inputStream = accept.getInputStream();
                bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
                String info;
                while ((info = bufferedReader.readLine()) != null) {
                    System.out.println("我是服务器,客户端说:" + info);
                }
                accept.shutdownInput();
                outputStream = accept.getOutputStream();
                outputStream.write("通话关闭".getBytes());
                outputStream.flush();
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                try {
                    inputStream.close();
                    bufferedReader.close();
                    outputStream.close();
                    accept.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }

            }

        }
    }
}
发布了75 篇原创文章 · 获赞 9 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/sinat_40387150/article/details/96614325
今日推荐