Java Socket: не может общаться между двумя компьютерами, используя Socket - PullRequest
0 голосов
/ 18 октября 2019

Я создал две программы, использующие 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.");
        }   
    }   
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...