Простое клиент-серверное приложение BindException в Java - PullRequest
0 голосов
/ 04 декабря 2018

Я пытаюсь создать простое приложение в Java для отправки сообщений на сервер.Когда я запускаю приложение, я получаю BindException (адрес уже используется) на сервере, хотя у меня нет процесса, использующего порт 4344 (я пытался изменить номер порта, но исключение всегда выдается).Несмотря на это, сообщение попадает на сервер и отображается сообщение.

Код сервера:

import java.io.DataInputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.concurrent.TimeUnit;

import javax.swing.JOptionPane;

public class Server implements Runnable {

    public static void main(String[] args){
        Server s = new Server();
        s.run();        
    }

    public Server() {
        Thread serverThread = new Thread(this);
        serverThread.start();
    }

    @Override
    public void run() {
        try {
            ServerSocket serverSocket = new ServerSocket(4344);
            while(true) {
                Socket clientSocket = serverSocket.accept();

                DataInputStream inputSocket = new DataInputStream(clientSocket.getInputStream());
                System.out.println(inputSocket.readUTF());
                inputSocket.close();
                clientSocket.close();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

Код клиента:

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
import java.net.UnknownHostException;

import javax.swing.JOptionPane;

public class Client {
    Socket serverConnection;
    String serverIp = "192.168.182.1";

    public static void main(String[] args){    
        Client c = new Client();            
    }

    public Client() {
        sendMessage("message");
    }

    public void sendMessage(String msg) {
        try {
            serverConnection = new Socket(serverIp, 4344);
            DataOutputStream dataOutput = new DataOutputStream(serverConnection.getOutputStream());
            dataOutput.writeUTF(msg);
            dataOutput.close();
            serverConnection.close();
        } catch (IOException e) {
            e.printStackTrace();
        }   
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...