• Socket 服务端实例学习笔记


    如下的GreetingServer 程序是一个服务器端应用程序,使用 Socket 来监听一个指定的端口。

    GreetingServer.java 文件代码:

    // 文件名 GreetingServer.java

    import java.net.*;

    import java.io.*;

    public class GreetingServer extends Thread

    {

       private ServerSocket serverSocket;

       

       public GreetingServer(int port) throws IOException

       {

          serverSocket = new ServerSocket(port);

          serverSocket.setSoTimeout(10000);

       }

       public void run()

       {

          while(true)

          {

             try

             {

                System.out.println("等待远程连接,端口号为:" + serverSocket.getLocalPort() + "...");

                Socket server = serverSocket.accept();

                System.out.println("远程主机地址:" + server.getRemoteSocketAddress());

                DataInputStream in = new DataInputStream(server.getInputStream());

                System.out.println(in.readUTF());

                DataOutputStream out = new DataOutputStream(server.getOutputStream());

                out.writeUTF("谢谢连接我:" + server.getLocalSocketAddress() + "\nGoodbye!");

                server.close();

             }catch(SocketTimeoutException s)

             {

                System.out.println("Socket timed out!");

                break;

             }catch(IOException e)

             {

                e.printStackTrace();

                break;

             }

          }

       }

       public static void main(String [] args)

       {

          int port = Integer.parseInt(args[0]);

          try

          {

             Thread t = new GreetingServer(port);

             t.run();

          }catch(IOException e)

          {

             e.printStackTrace();

          }

       }

    }

    编译以上两个 java 文件代码,并执行以下命令来启动服务,使用端口号为 6066:

    $ javac GreetingServer.java

    $ java GreetingServer 6066

    等待远程连接,端口号为:6066...

    新开一个命令窗口,执行以上命令来开启客户端:

    $ javac GreetingClient.java

    $ java GreetingClient localhost 6066

    连接到主机:localhost ,端口号:6066

    远程主机地址:localhost/127.0.0.1:6066

    服务器响应: 谢谢连接我:/127.0.0.1:6066

    Goodbye!

  • 相关阅读:
    Docker构建jar包镜像并运行容器
    数据结构 【树状数组】【线段树】【珂朵莉树】
    记一次导入下载好的源码工程到本地工程异常解决方案
    集合Collection
    3d场景重建&图像渲染 | 神经辐射场NeRF(Neural Radiance Fields)
    Java多线程解密:揭秘多线程的奥秘,给你全面了解与实践的权威指南
    AutoJs7打包薅羊毛时间版
    scrollIntoView锚点跳转 超好用
    MySQL之导入导出&视图&索引&执行计划
    JZ19 正则表达式匹配
  • 原文地址:https://blog.csdn.net/yingcai111/article/details/128049163