• 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!

  • 相关阅读:
    Apache的配置详解
    详解 sudo usermod -aG docker majn
    C/S架构学习之TCP的三次握手和四次挥手
    opencv案例06-基于opencv图像匹配的消防通道障碍物检测与深度yolo检测的对比
    C语言进阶——字符函数和字符串函数(下)
    ITIL-4关键词汇总
    队列(循环数组队列,用队列实现栈,用栈实现队列)
    【腾讯云 Cloud Studio 实战训练营】提升开发效率与协作:探索腾讯云 Cloud Studio 的强大功能与优势
    c语言练习73:统计位数为偶数的数字
    外卖系统关于redis使用解决高并发情况
  • 原文地址:https://blog.csdn.net/yingcai111/article/details/128049163