zoukankan      html  css  js  c++  java
  • Java Socket Example

    1.服务端:server

    package com.socket;
     
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.PrintWriter;
    import java.net.ServerSocket;
    import java.net.Socket;
     
    import com.common.LogHelper;
     
    /**
     * ServerSide: receive message from Client and return it.
     * @author Guoliang
     *
     */
    public class MesgServer implements Runnable{
         
        public void run() {
            LogHelper.log("ServerStarted");
            try {
                ServerSocket serverSocket = new ServerSocket(8888);
             
                while (true) {
                     
                        Socket socket = serverSocket.accept();
                        LogHelper.log("Request: " + socket.toString());
                         
                        BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                        PrintWriter out = new PrintWriter(socket.getOutputStream());
                         
                        out.println("Connected!");
                        out.flush();
                         
                        String lineInput;
                        while ((lineInput = in.readLine()) != null) {
                            LogHelper.log("GotMesgFromClient: " + lineInput);
                            out.println("ServerReturnMsg: " + lineInput);
                            out.flush();
                            if("exit".equals(lineInput)) {
                                break;
                            }
                        }
                         
                        out.close();
                        in.close();
                        socket.close();
                }
                 
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
     
    }

    2.客户端 Client

    package com.socket;
     
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.PrintWriter;
    import java.net.Socket;
    import java.net.UnknownHostException;
     
    import com.common.LogHelper;
     
    public class MesgClient {
     
        /**
         * Send mesg to server side.
         * @param args
         * @throws IOException
         * @throws UnknownHostException
         */
        public static void main(String[] args) throws UnknownHostException, IOException {
             
            // Start server.
            new Thread(new MesgServer()).start();
             
            Socket socket = new Socket("localhost", 8888);
            LogHelper.log("Connecting...");
             
            PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
            BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
             
            LogHelper.log(in.readLine());
             
            // Simplest testing
            out.println("Hello!");
            LogHelper.log(in.readLine());
             
            // Read user input.
            BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
            String strInput = null;
            while ((strInput = stdIn.readLine()) != null) {
                out.println(strInput);
                LogHelper.log("Send: " + strInput);
                LogHelper.log(in.readLine());
            }
        }
    }

    Output:

    [Thread-0]ServerStarted
    [main]Connecting...
    [Thread-0]Request: Socket[addr=/127.0.0.1,port=5569,localport=8888]
    [main]Connected!
    [Thread-0]GotMesgFromClient: Hello!
    [main]ServerReturnMsg: Hello!
    liguoliang.com  // user input.
    [Thread-0]GotMesgFromClient: liguoliang.com
    [main]Send: liguoliang.com
    [main]ServerReturnMsg: liguoliang.com

    转自:

    http://liguoliang.com/2013/java-socket-example/

  • 相关阅读:
    显示文件本地文件夹
    Select Dependencies选择依赖项
    搜索小技巧
    783. Minimum Distance Between BST Nodes BST节点之间的最小距离
    5. Longest Palindromic Substring 最长的回文子串
    12. Integer to Roman 整数转罗马数字
    3. Longest Substring Without Repeating Characters 最长的子串不重复字符
    539. Minimum Time Difference 最小时差
    43. Multiply Strings 字符串相乘
    445. Add Two Numbers II 两个数字相加2
  • 原文地址:https://www.cnblogs.com/ae6623/p/4416484.html
Copyright © 2011-2022 走看看