• Java中TCP和UDP的helloworld


    TCP

    服务端:

    package com.ysdx.socket1;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.PrintWriter;
    import java.net.ServerSocket;
    import java.net.Socket;
    
    public class S1Impl0 implements ISocket1 {
    
        ServerSocket server;
        Socket socket;
        PrintWriter writer;
        BufferedReader reader;
        @Override
        public void work() {
            try {
                server=new ServerSocket(5001);
                socket=server.accept();
                writer = new PrintWriter(socket.getOutputStream());
                reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                String message=reader.readLine();
                if (message!=null) {
                    System.out.println(message);
                } else {
                    System.out.println("No Message Here!");
                }
                writer.close();
                reader.close();
                socket.close();
                server.close();
                
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
    
        }
    
    }

    客户端:

    package com.ysdx.socket0;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.PrintWriter;
    import java.net.Socket;
    import java.net.UnknownHostException;
    
    public class S0Impl0 implements ISocket0 {
    
        Socket socket;
        PrintWriter writer;
        BufferedReader reader;
    
        @Override
        public void work() {
            try {
                socket = new Socket("127.0.0.1", 5001);
                writer = new PrintWriter(socket.getOutputStream());
                reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                writer.write("hello !");
                writer.flush();
                writer.close();
                reader.close();
                socket.close();
            } catch (UnknownHostException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
    
        }
    
    }

    UDP

    一对一,需要选择合适的超时时间

    package com.ysdx.udp0;
    
    import java.io.IOException;
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    import java.net.InetSocketAddress;
    import java.net.SocketException;
    
    public class UDP0 {
    
        
        public static void main(String[] args) throws IOException {
            InetSocketAddress address;
            DatagramPacket packet;
            DatagramSocket socket;
            byte []buffer=new byte[1024];
            
            address=new InetSocketAddress("localhost", 5002);
            socket=new DatagramSocket(address);
            socket.setSoTimeout(60000);
            packet=new DatagramPacket(buffer, buffer.length);
            socket.receive(packet);
            String message=new String(packet.getData(), 0, packet.getLength());
            System.out.println(message);
    //        String reply="OK";
            byte[] reply="OK".getBytes();
            packet=new DatagramPacket(buffer, buffer.length, packet.getAddress(), packet.getPort());
            packet.setData(reply);
            socket.send(packet);
            socket.close();
            
        }
    }
    package com.ysdx.udp1;
    
    import java.io.IOException;
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    import java.net.InetAddress;
    import java.net.InetSocketAddress;
    
    public class UDP1 {
    
        public static void main(String[] args) throws IOException {
            InetSocketAddress address;
            DatagramPacket packet;
            DatagramSocket socket;
            byte []buffer=new byte[1024];
            
            
            socket=new DatagramSocket();
            socket.setSoTimeout(60000);
            
            byte[] reply="Hello".getBytes();
            packet=new DatagramPacket(buffer, buffer.length, InetAddress.getByName("localhost"), 5002);
            packet.setData(reply);
            socket.send(packet);
            
            packet=new DatagramPacket(buffer, buffer.length);
            socket.receive(packet);
            String message=new String(packet.getData(), 0, packet.getLength());
            System.out.println(message);
    //        String reply="OK";
            
            
            socket.close();
            
        }
    }
  • 相关阅读:
    dedecms(4)
    dedecms(3)
    jquery-submit:f[s] is not a function
    修改mysql字符集
    CentOS-6.3安装配置SVN[转载]
    centos下编译安装curl拓展
    CSS杂集(标准流&多行垂直居中)
    杂集一(yii自动登陆过程浅析)
    webservice连接超时处理
    JavaScript 实现触点式弹出菜单插件
  • 原文地址:https://www.cnblogs.com/afraidToForget/p/6606236.html
Copyright © 2020-2023  润新知