javascript - 从 JavaScript 连接到普通套接字
问题描述
我有一个 Java 后端来连接到 JavaScript 客户端。
但我不想使用 WebSockets。我的问题是 JavaScript 中是否有像 Java、Python 等其他语言一样的普通套接字连接。
这是一个例子:
服务器.java
import java.net.*;
import java.io.*;
import java.util.*;
public class Server{
public static boolean isRunning;
public static ServerSocket server;
public static void main(String[] args) {
try{
isRunning = true;
server = new ServerSocket(3080);
int id = 0;
System.out.println("Server startes on port " + 3080 + " waiting for clients.");
while(isRunning){
Socket client = server.accept();
System.out.println("New Client ID : " + (++id));
Thread thread = new Thread(new Handler(id, client));
thread.start();
}
}catch(SocketException se){
System.out.println("Server has been Shutdown");
}
catch(Exception ex){
ex.printStackTrace();
}
}
}
class Handler implements Runnable{
private int id;
private Socket client;
public Handler(int id, Socket client){
this.id = id;
this.client = client;
}
@Override
public void run(){
try{
Scanner sc = new Scanner(client.getInputStream());
PrintStream ps = new PrintStream(client.getOutputStream());
String s = "";
while(sc.hasNextLine()){
s = sc.nextLine();
if(s.equals("HELLO")){
System.out.println("Hello from client " + id);
}else if(s.equals("EXIT")){
System.out.println("Shutdown order from client " + id);
Server.server.close();
client.close();
break;
}else if(s.equals("REPLY")){
System.out.println("Reply order from client " + id);
ps.println("Hello this is a reply from server!\nThank you for connecting!\nDONE");
ps.flush();
}else{
System.out.println("Message from client " + id + " -> " + s);
}
}
}catch(Exception ex){
ex.printStackTrace();
}
}
}
客户端.java
import java.net.*;
import java.util.*;
import java.io.*;
public class Client{
public static void main(String[] args) {
try{
Socket client = new Socket("192.168.0.5", 3080);
Scanner sc = new Scanner(client.getInputStream());
PrintStream ps = new PrintStream(client.getOutputStream());
System.out.println("Sending Hello to Server.");
ps.println("HELLO");
ps.flush();
System.out.println("Sending Message to Server.");
ps.println("Some Random Message");
ps.flush();
System.out.println("Sending Reply order to Server.");
ps.println("REPLY");
ps.flush();
System.out.println("Reply from Server : ");
String s ="";
while(sc.hasNext()){
s= sc.nextLine();
if(s.equals("DONE"))
break;
System.out.println(s);
}
System.out.println("End of Server's Reply.");
System.out.println("Sending Shutdown order to Server.");
ps.println("EXIT");
ps.flush();
}catch(Exception ex){
ex.printStackTrace();
}
}
}
现在我希望客户端是 JavaScript(来自浏览器)。
我不太确定如何实现它?