通过Java Socket和ServerSocket类连接到服务器

时间:2018-12-07 02:44:13

标签: java security tomcat networking server

我希望有一个非常简单的问题。我正在编写一系列Java程序,这些程序使用诸如RSA,El Gamal等加密功能的安全类。这样客户端(Alice)和服务器(Bob)可以安全地通信。但是,我不知道如何使用Java连接到计算机上的服务器。我已经使用MAMP连接到Web服务器,并在其中使用PHP / SQL编写了代码,但是我不知道如何使用Java来工作。具体来说,我获得的所有启动文件都使用Java类Socket和ServerSocket,如下所示:

String host = "localhost";
int port = 7999;
Socket s = new Socket(host, port);
ObjectOutputStream os = new ObjectOutputStream(s.getOutputStream());

对于服务器(Bob):

int port = 7999;
ServerSocket s = new ServerSocket(port);
Socket client = s.accept();
ObjectInputStream is = new ObjectInputStream(client.getInputStream());

在我的计算机上通过该代码连接到服务器该怎么办?

1 个答案:

答案 0 :(得分:1)

Client.java

import java.io.*;
import java.net.*;

public class Client {

    public static void main(String[] args) throws Exception {

        String host = "localhost";
        int port = 7999;
        Socket s = new Socket(host, port);
        ObjectOutputStream os = new ObjectOutputStream(s.getOutputStream());

        os.writeObject("Hello World");
        os.close();
    }

}

Server.java

import java.io.*;
import java.net.*;

public class Server {

    public static void main(String[] args) throws Exception {

        int port = 7999;
        ServerSocket s = new ServerSocket(port);
        Socket client = s.accept();
        ObjectInputStream is = new ObjectInputStream(client.getInputStream());

        String str = (String)is.readObject();

        System.out.println("Read string: " + str);

        is.close();
    }

}

编译为

javac Client.java

javac Server.java

运行服务器(您可以测试此服务器是否在同一台计算机上运行。)

java Server

运行客户端(在另一个终端或DOS提示符下。)

java Client

在服务器上,您应该看到:

server$ java Server 
Read string: Hello World
server$