zoukankan      html  css  js  c++  java
  • socket与线程

     Socket socket=new Socket("localhost",9999);
        System.out.println("远程主机地址:"+socket.getRemoteSocketAddress());
        DataOutputStream out=new DataOutputStream(socket.getOutputStream());
        out.writeUTF("我是客户端,我要连你了,我来自:"+socket.getLocalSocketAddress());
    
        DataInputStream input=new DataInputStream(socket.getInputStream());
        System.out.println(input.readUTF());
        socket.close();
    public class Main extends Thread {
        private ServerSocket serverSocket;
    
        public Main(int port) throws IOException {
            serverSocket = new ServerSocket(port);
            serverSocket.setSoTimeout(10000);//超时时间,accept获取请求的超时时间,超过十秒就断Accept timed out
        }
    
        @Override
        public void run() {
            while (true) {
                System.out.println("等待远程 连接端口:" + serverSocket.getLocalPort());
                try {
                    Socket socket = serverSocket.accept();//SocketTimeoutException: Accept timed out
                    System.out.println("远程主机地址:" + socket.getRemoteSocketAddress());
                    DataInputStream ds = new DataInputStream(socket.getInputStream());
                    System.out.println(ds.readUTF());
    
                    DataOutputStream out=new DataOutputStream(socket.getOutputStream());
                    out.writeUTF("你连接上我了:"+socket.getLocalSocketAddress()+"
    goodbye");
                    socket.close();
    
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

    这段代码,服务端加了多线程,新开了一个线程连接客户端。

    也可以客户端多开几个线程请求服务端,就不写了。

  • 相关阅读:
    Spiral Matrix II
    N-Queens
    Jump Game II
    js改变div高度
    Jenkins + testNg + maven 项目持续集成
    bootstrap做的导航
    bootstrap左侧边栏
    WEB-INF下jsp跳转
    jsp页面无法解析EL表达式
    springMVC和mybatis整合,jsp对时间进行格式化
  • 原文地址:https://www.cnblogs.com/hebiao/p/14430152.html
Copyright © 2011-2022 走看看