zoukankan      html  css  js  c++  java
  • java tcp 端口监听

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.PrintWriter;
    import java.net.InetAddress;
    import java.net.ServerSocket;
    import java.net.Socket;
    
    
    
    public class Server extends ServerSocket {
    
        publicServer(int serverPort) throws IOException {
          // 用指定的端口构造一个ServerSocket
          super(serverPort);
          try {
             while (true) {
                // 监听一端口,等待客户接入
                Socket socket = accept();
                // 将会话交给线程处理
                new ServerThread(socket);
             }
          } catch (IOException e) {
             e.printStackTrace();
          } finally {
             close(); // 关闭监听端口
          }
        }
    
        //inner-class ServerThread
        classServerThread extends Thread {
          private Socket socket;
          private BufferedReader in;
          private PrintWriter out;
    
          // Ready to conversation
          public ServerThread(Socket s) throws IOException{
             this.socket = s;
             // 构造该会话中的输入输出流
             in = new BufferedReader(newInputStreamReader(socket
                   .getInputStream(), "GB2312"));
             out = new PrintWriter(socket.getOutputStream(),true);
             start();
          }
    
          // Execute conversation
          public void run() {
             try {
    
                // Communicate with client until "bye "received.
                while (true) {
                   // 通过输入流接收客户端信息
                   String line = in.readLine();
                   if (line == null || "".equals(line.trim())) { //是否终止会话
                      break;
                   }
                   System.out.println("Received  message: " + line);
                   // 通过输出流向客户端发送信息
                   out.println(line);
                   out.flush();
                }
    
                out.close();
                in.close();
                socket.close();
    
             } catch (IOException e) {
                e.printStackTrace();
             }
          }
    
        }
    
        // mainmethod
        publicstatic void main(String[] args) throws IOException {
          new Server(2088);
        }
    }


  • 相关阅读:
    sublime使用技巧
    周末时间学习Linux
    中小企业网络安全提升
    NoSQL是什么?
    IBM的淘汰之路
    Linux 中断处理浅析
    深入理解 C 语言的函数调用过程
    LAMP简易安装
    安装Fedora 24后必要的设置
    wget命令详解
  • 原文地址:https://www.cnblogs.com/xiaowangba/p/6314337.html
Copyright © 2011-2022 走看看