Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как сделать jUnit-тест для Sockets-соединения???

29K
26 апреля 2012 года
webdev
56 / / 08.05.2010
Собственно вопрос понятен из темы.
Есть клиент и сервер - нужно протестировать с помощью jUnit Socket-соединение, ну или если у кого есть другие примеры то все-равно с помощью чего, главное понять принцип как это сделать.

В инете нашел материал, но что-то под свой пример заточить не смог.

Спасибо за подсказки.

Client
Код:
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;

public class Client {

    public static void main(String[] args) throws UnknownHostException,
            IOException {
        new Client();
    }

    private Socket clientSocket;
    private InputStream inputStream;
    private OutputStream outputStream;

    private DataInputStream dataInputStream;
    private DataOutputStream dataOutputStream;

    private final String hostName = "localhost";
    private final int PORT = 6700;

    private BufferedReader bufReader;
    private String requestMessage = null;
    private String responseMessage = null;

    public Client() {
        System.out.println("-CLIENT-");

        try {
            this.clientSocket = new Socket(this.hostName, this.PORT);
            this.bufReader = new BufferedReader(
                    new InputStreamReader(System.in));

            this.inputStream = clientSocket.getInputStream();
            this.outputStream = clientSocket.getOutputStream();

            this.dataInputStream = new DataInputStream(inputStream);
            this.dataOutputStream = new DataOutputStream(outputStream);

            do {
                this.requestMessage = bufReader.readLine();
                sendMessage(this.requestMessage);
                this.responseMessage = dataInputStream.readUTF();
                System.out.println(this.responseMessage);
            } while ((!(this.requestMessage.compareTo("quit") == 0)));
            System.out.println("ClientStopped!");

        } catch (UnknownHostException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                this.inputStream.close();
                this.outputStream.close();
                this.clientSocket.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    private void sendMessage(String msg) {
        try {

            this.dataOutputStream.writeUTF(msg);
            this.dataOutputStream.flush();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Server
Код:
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {

    public static void main(String[] args) throws IOException {
        new Server();
    }

    private ServerSocket serverSocket;
    private Socket connectionSocket;

    private InputStream inputStream;
    private OutputStream outputStream;

    private DataInputStream dataInputStream;
    private DataOutputStream dataOutputStream;

    private final int PORT = 6700;
    private int parkPlatzCounter = 5;

    private String responseMessage = null;

    public Server() {
        System.out.println("-SERVER-");

        try {
            this.serverSocket = new ServerSocket(this.PORT);
            this.connectionSocket = serverSocket.accept();

            this.inputStream = connectionSocket.getInputStream();
            this.outputStream = connectionSocket.getOutputStream();

            this.dataInputStream = new DataInputStream(inputStream);
            this.dataOutputStream = new DataOutputStream(outputStream);

            do {
                this.responseMessage = this.dataInputStream.readUTF();
                if (this.responseMessage.compareTo("quit") == 0) {
                    sendMessage("Server Stopped!");
                } else if (this.responseMessage.compareTo("in") == 0) {
                    autoEin();
                } else if (this.responseMessage.compareTo("out") == 0) {
                    autoAus();
                } else if (this.responseMessage.compareTo("free") == 0) {
                    free();
                } else {
                    sendMessage("---Falsche Eingabe!---");
                }

            } while ((!(this.responseMessage.compareTo("quit") == 0)));
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                this.inputStream.close();
                this.outputStream.close();
                this.serverSocket.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    private void free() {
        sendMessage("> " + this.parkPlatzCounter);
    }

    private void autoEin() {
        if (this.parkPlatzCounter > 0) {
            this.parkPlatzCounter--;
            sendMessage("> ok");
        } else {
            sendMessage("> fail");
        }
    }

    private void autoAus() {
        if (this.parkPlatzCounter < 5) {
            this.parkPlatzCounter++;
            sendMessage("> ok");
        } else {
            sendMessage("> fail");
        }
    }

    private void sendMessage(String msg) {
        try {

            this.dataOutputStream.writeUTF(msg);
            this.dataOutputStream.flush();

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог