• 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();
                }
            }
        }

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

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

  • 相关阅读:
    c-指针
    iOS 多线程
    iOS 必备技术点
    网络请求
    objective-c基础教程——学习小结
    id类型
    排序算法
    iOS网络
    iOS 绘图
    Python——字符串2.0(实验)(python programming)
  • 原文地址:https://www.cnblogs.com/hebiao/p/14430152.html
Copyright © 2020-2023  润新知