Я хочу протестировать это приложение-клиент-клиент simpel на собственной машине дома. Как я могу запустить это в Eclipse, а затем посмотреть, сможет ли другая сторона увидеть мое сообщение. Я хочу в какой-то момент сделать окно чата, которое каждый мог бы иметь на своей машине, и отправлять сообщения всем, кто находится в сети, который связан в окне чата.
Но сначала я должен уметь видеть, что у меня есть связь. Если я должен установить сервер на свой компьютер, или кто-то сказал мне, что на моем компьютере уже установлен сервер, но мне просто нужно было включить его. (Windows 7)
Вопрос: Как я могу протестировать этот клиент-сервер на своем компьютере дома?
Код:
Сторона клиента:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
import javax.swing.JOptionPane;
public class DateClient {
public static void main(String[] args) throws IOException {
String serverAddress = JOptionPane.showInputDialog(
"Enter IP Address of a machine that is\n" +
"running the date service on port 9090:");
Socket s = new Socket(serverAddress, 9090);
BufferedReader input =
new BufferedReader(new InputStreamReader(s.getInputStream()));
String answer = input.readLine();
JOptionPane.showMessageDialog(null, answer);
System.exit(0);
}
}
Серверная сторона:
import java.io.IOException;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Date;
public class DateServer {
public static void main(String[] args) throws IOException {
ServerSocket listener = new ServerSocket(9090);
try {
while (true) {
Socket socket = listener.accept();
try {
PrintWriter out =
new PrintWriter(socket.getOutputStream(), true);
out.println(new Date().toString());
} finally {
socket.close();
}
}
}
finally {
listener.close();
}
}
}
Код, который я хочу добавить для нового сообщения:
out.println("Hello Doug, how are you!);
Это не будет отображаться в моем окне сообщения, когда оно появится на экране. Является ли 127.0.0.1 всегда IP-адресом, который необходимо ввести при тестировании из eclipse или как я могу изменить его, чтобы я мог позволить пользователю определить свой собственный IP-адрес.
Вам не нужен сервер.
В Eclipse (при условии правильности вашего кодирования) вы можете одновременно запускать несколько программ (файлы Java с основным методом).
Сначала скажем, DateServer → Run As → Java Application Next, скажем, DateClient → Run As → Java Application
Для запуска этого вам не нужен дополнительный сервер, но Win 7 может попросить вас разрешить разблокировать эти программы от доступа к сети. Вы должны сказать "да" этим разрешениям.
Если вы хотите почувствовать себя отдельным клиентом и сервером, это может быть лучше
Вы можете просто открыть два терминала. Для DateClient
просто используйте localhost
или 127.0.0.1
в качестве адреса. Если вы действительно должны использовать Eclipse, вы можете запустить одну из программы из Eclipse, а другую - с терминала.
Сторона клиента:
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.util.logging.Level;
import java.util.logging.Logger;
public class ClientSide {
public static void main(String[] args) {
try {
Socket s = new Socket("localhost", 1234);
DataOutputStream dos = new DataOutputStream(s.getOutputStream());
dos.writeUTF("Hello");
} catch (IOException ex) {
System.out.println("Connection failed");
}
}
}
Сторона сервера:
import java.io.DataInputStream;
import java.io.IOException;
import java.net.ServerSocket;
public class ServerSide {
public static void main(String[] args) {
try {
ServerSocket ss = new ServerSocket(1234);
System.out.println("waiting for connection...");
DataInputStream dis = new DataInputStream(ss.accept().getInputStream());
System.out.println("Successfully Connected\n" + dis.readUTF());
} catch (IOException ex) {
System.out.println("Server Not Started : " + ex);
}
}
}