Я создал две программы, использующие Java, которые могут общаться через Socket, и они отлично работают на моем собственном ПК. Но когда я пытаюсь сделать то же самое между двумя компьютерами, это не работает, как будто компьютеры не могут найти друг друга или что-то еще. (Я получаю IP-адрес компьютера, который работает как сервер, используя ipconfig в CMD)То, что здесь не так, не касается кода. Я даже выключил брандмауэры на обоих компьютерах, но ничего не изменил. Кто-нибудь может мне помочь?
MyServer.java
import java.io.*;
import java.net.*;
import java.util.*;
public class MyServer {
// Scanner Object
static Scanner scan = new Scanner(System.in);
// Objects
static ServerSocket serverSocket;
static Socket socket;
static DataInputStream dIs;
static DataOutputStream dOut;
public static void main(String[] args) {
try {
// Setting Up Message
System.out.println("Server Waiting For Connections...");
// Setup Server Socket
serverSocket = new ServerSocket(6666);
// Accept Client Connection Request
socket = serverSocket.accept();
// Confirmation Message
System.out.println("Client Connected.");
// Data Input Stream
dIs = new DataInputStream(socket.getInputStream());
// Data Output Stream
dOut = new DataOutputStream(socket.getOutputStream());
String Input = "";
while (!Input.equalsIgnoreCase("close Connection")) {
// Read Client Message
Input = dIs.readUTF();
System.out.print("\nClient: " + Input);
if (!Input.equalsIgnoreCase("close Connection")) {
// Send Server-Side Response
System.out.print("\nResponse: ");
dOut.writeUTF(scan.nextLine());
dOut.flush();
} else {
dOut.writeUTF("Connection Closed.");
dOut.flush();
}
}
closeConnections();
} catch (Exception ex) {
// Error Message
System.out.println("Error: " + ex);
closeConnections();
}
}
public static void closeConnections() {
try {
// Close Connection
dIs.close();
socket.close();
serverSocket.close();
System.out.println("Connection Closed.");
} catch (Exception ex) {
System.out.println("Could Not Close Connections.");
}
}
}
MyClient.java
import java.io.*;
import java.net.*;
import java.util.*;
public class MyClient {
// Scanner Object
static Scanner scan = new Scanner(System.in);
// Objects
static Socket socket;
static DataInputStream dIs;
static DataOutputStream dOut;
public static void main(String[] args) {
try {
// Setup Connection Socket For Client
socket = new Socket("localhost",6666);
// Data Input Stream
dIs = new DataInputStream(socket.getInputStream());
// Data Output Stream
dOut = new DataOutputStream(socket.getOutputStream());
String Input = "";
while (!Input.equalsIgnoreCase("Close Connection")) {
// Send Client-Side Message
System.out.print("\n- Client Message: ");
dOut.writeUTF(scan.nextLine());
dOut.flush();
// Read Server Message
Input = dIs.readUTF();
System.out.print("\nServer Response: " + Input);
}
closeConnections();
} catch (Exception ex) {
// Error Message
System.out.println(ex);
closeConnections();
}
}
public static void closeConnections() {
try {
// Close Connection
dIs.close();
dOut.close();
socket.close();
} catch (Exception ex) {
System.out.println("Could Not Close Connections.");
}
}
}