• UDP client,UDP server, TCP server, TCP client


    UDP server

     1 import java.io.IOException;
     2 import java.net.DatagramPacket;
     3 import java.net.DatagramSocket;
     4 import java.net.InetSocketAddress;
     5 import java.net.SocketException;
     6 
     7 /**
     8  * udpserver 
     9  * 监听端口 10001
    10  * @author GXF
    11  *
    12  */
    13 public class UdpSocketServer {
    14     private DatagramSocket serverSocket;
    15     
    16     public UdpSocketServer(int port){
    17         init(port);
    18     }
    19     
    20     public void init(int port){
    21         
    22         InetSocketAddress serverSocketAddress = new InetSocketAddress( port);
    23         try {
    24             serverSocket = new DatagramSocket(serverSocketAddress);
    25         } catch (SocketException e) {
    26             // TODO Auto-generated catch block
    27             e.printStackTrace();
    28         }
    29     }
    30     
    31     //监听端口
    32     public void startListen(){
    33         byte buff[] = new byte[1024];
    34         DatagramPacket receivePacket = new DatagramPacket(buff, buff.length);
    35         while(true){
    36             try {
    37                 serverSocket.receive(receivePacket);
    38                 String message = new String(buff, 0, receivePacket.getLength());
    39                 System.out.println("message from client = " + message);
    40             } catch (IOException e) {
    41                 // TODO Auto-generated catch block
    42                 e.printStackTrace();
    43             }
    44         }
    45     }
    46     
    47     public static void main(String args[]){
    48         UdpSocketServer udpSocketServer = new UdpSocketServer(10001);
    49         udpSocketServer.startListen();
    50     }
    51 }

    UDP client

     1 import java.io.IOException;
     2 import java.net.DatagramPacket;
     3 import java.net.DatagramSocket;
     4 import java.net.InetAddress;
     5 import java.net.InetSocketAddress;
     6 import java.net.SocketException;
     7 import java.net.UnknownHostException;
     8 
     9 /**
    10  * Udp客户端  DatagramSocket
    11  * @author GXF
    12  *
    13  */
    14 public class UdpSocketClient {
    15     //客户端套接字
    16     private DatagramSocket clientSocket;
    17     
    18     //构造方法
    19     public UdpSocketClient(String ip, int port){
    20         init(ip, port);
    21     }
    22     
    23     /**
    24      * 初始化套接字
    25      * @param ip
    26      * @param port
    27      */
    28     public void init(String ip, int port){
    29 //        try {
    30 //            InetAddress serverAddress = InetAddress.getByName(ip);
    31 //            InetSocketAddress serverSocketAddress = new InetSocketAddress(serverAddress, port);
    32             try {
    33                 clientSocket = new DatagramSocket();
    34             } catch (SocketException e) {
    35                 // TODO Auto-generated catch block
    36                 e.printStackTrace();
    37             }
    38 //        } catch (UnknownHostException | SocketException e) {
    39 //            e.printStackTrace();
    40 //        }
    41     }
    42     
    43     /**
    44      * 使用UDP向服务器发送消息
    45      * @param ip
    46      * @param message
    47      */
    48     public void sendMessage(String message){
    49         byte buff[] = message.getBytes();
    50         DatagramPacket packetToSend;
    51         try {
    52             packetToSend = new DatagramPacket(buff, buff.length, InetAddress.getByName("127.0.0.1"), 10002);
    53             clientSocket.send(packetToSend);                                                    //发送数据包
    54         } catch (Exception e) {
    55             // TODO Auto-generated catch block
    56             e.printStackTrace();
    57         }                                                    
    58     }
    59     
    60     public static void main(String[] args) {
    61         String serverIp = "127.0.0.1";
    62         int port = 10001;
    63         UdpSocketClient clientSocket = new UdpSocketClient(serverIp, port);
    64         String message = "hahahahah";
    65         clientSocket.sendMessage(message);
    66 
    67     }
    68 
    69 }

    TCP server

    import java.io.IOException;
    import java.io.InputStream;
    import java.net.ServerSocket;
    import java.net.Socket;
    
    public class TcpServer {
        private ServerSocket serverSocket;
        
        TcpServer(int port){
            try {
                serverSocket = new ServerSocket(port);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        
        //开始监听端口
        public void start(){
            while(true){
                try {
                    Socket clientSocket = serverSocket.accept();
                    InputStream is = clientSocket.getInputStream();
                    byte buff[] = new byte[1024];
                    int length = -1;
                    StringBuilder sb = new StringBuilder();
    //                while((length = is.read(buff)) > 0){
                    length = is.read(buff);
                        sb.append(new String(buff, 0, length));
    //                }//while
                    System.out.println("message received: " + sb.toString());
                    clientSocket.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                
            }
        }
        
        public static void main(String args[]){
            int port = 10002;
            TcpServer tcpServer = new TcpServer(port);
            tcpServer.start();
        }
    }

    Tcp client

     1 import java.io.IOException;
     2 import java.io.OutputStream;
     3 import java.net.InetAddress;
     4 import java.net.Socket;
     5 import java.util.Scanner;
     6 
     7 public class TcpClient {
     8     private Socket socket;
     9     private int port;
    10     
    11     private TcpClient(int port){
    12 //        try {
    13             this.port = port;
    14 //        } catch (IOException e) {
    15 //            e.printStackTrace();
    16 //        }
    17     }
    18     
    19     /**
    20      * 发送消息
    21      * @param message
    22      */
    23     public void sendMessage(String message){
    24         try {
    25             Socket socket = new Socket(InetAddress.getByName("127.0.0.1"), port);
    26             OutputStream os = socket.getOutputStream();
    27             byte buff[] = message.getBytes();
    28             os.write(buff);
    29             os.flush();
    30             socket.close();
    31         } catch (IOException e) {
    32             e.printStackTrace();
    33         }
    34         
    35     }
    36     
    37     public void inputMessage(){
    38         Scanner scanner = new Scanner(System.in);
    39         while(true){
    40             String message = scanner.nextLine();
    41             sendMessage(message);
    42         }
    43     }
    44     
    45     public static void main(String[] args) {
    46         int port = 10001;
    47         TcpClient client = new TcpClient(port);
    48         client.inputMessage();
    49     }
    50 
    51 }
  • 相关阅读:
    Solr Admin管理界面使用说明
    游戏设计手札07
    php中新浪微博的调用
    关于MFC中EDIT编辑框内容换行显示
    几个常用命令
    ANF
    关于MFC中的定时器用法
    C++ 堆方面的笔记
    关于类定义与IO操作
    mysql用户权限配置时遇到的问题
  • 原文地址:https://www.cnblogs.com/luckygxf/p/4934619.html
Copyright © 2020-2023  润新知