Witam Panowie, mój problem polega na tym że piszę program, Chat. Nauczyciel dał nam gotowy kod do serwera i clienta, a naszym celem jest stworzenie GUI i potem połączenie tego wszystkiego by to działało właśnie w tym GUI z obsługą serwera (by serwer odpowiadał, może być nawet jeden użytkownik)
Dodam tu kod tego co dał nauczyciel, oraz tego GUI co tworzę, dodam że GUI jest niedokończone. :)
package serwer;
import java.net.Socket; //
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader; // strumien
import java.net.ServerSocket;// bufor zapisyu
import java.io.PrintWriter; //
import java.util.Date;
public class serwer {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
//Utworzenie serwera na porcie 1500
ServerSocket ssc = new ServerSocket(1500); // na porcie 1500
System.out.println("serwer został uruchomiony");
try {
while (true) {
//akceptacja przychodzących połączeń
Socket socket = ssc.accept(); // soket wykrozystywany do komunikacji , akceptuje połeczenia przychodzace
try {
//tworzenie buforu odczytu
BufferedReader input =
new BufferedReader(new InputStreamReader(socket.getInputStream()));
//odczyt linii z bufora odczytu
String answer = input.readLine(); //pobieram z komunikatu info
//sprawdzanie odpowiedzi
if (answer.equals("tak")){
//tworzenie bufora zapisu
PrintWriter out =
new PrintWriter(socket.getOutputStream(), true);
//zapis do bufora zapisu - wysłanie wiadomości do klienta
out.println(new Date().toString());
}
else {
//tworzenie bufora zapisu
PrintWriter out =
new PrintWriter(socket.getOutputStream(), true);
//zapis do bufora zapisu - wysłanie wiadomości do klienta
out.println("Nie chiałeś daty"); // wyswietla
}
} finally {
//zamknięcie socket
socket.close();
}
}
}
finally {
//zamknięcie ssc
ssc.close();
}
}
}
package klient;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.Date;
import javax.swing.JOptionPane; // do pytanie tak czy nie
public class klient {
public static void main(String[] args) throws IOException {
//ustanowienie połączenia z serwerem na porcie 1500
Socket s = new Socket("localhost", 1500); // zdefiniowanie z jakim serwerem i na jakim porcie
//Wyświtlenie okna z pytaniem do użytkownika i pobranie jego odpowiedzi
String t = JOptionPane.showInputDialog(
"Czy podać datę?");
//tworzenie bufora zapisu
PrintWriter out =
new PrintWriter(s.getOutputStream(), true);
//zapis do bufora zapisu - wysłanie wiadomości do klienta
out.println(t);
//tworzenie buforu odczytu
BufferedReader input =
new BufferedReader(new InputStreamReader(s.getInputStream()));
//odczyt linii z bufora odczytu
String answer = input.readLine();
//wyświtlenie MsgBoxa z otrzymaną odpowiedzią serwera
JOptionPane.showMessageDialog(null, answer);
//Zakończenie pracy programu
System.exit(0);
}
}
package GUI;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class GUI extends JFrame{
JButton buttonWyślij;
JLabel labelWiadomość;
JTextField poleWiadomość, poleCzat;
public GUI(){
setSize(600,600);
setTitle("Chat");
setLayout(null);
buttonWyślij = new JButton("Wyślij");
buttonWyślij.setBounds(470,550,120,20);
add(buttonWyślij);
labelWiadomość = new JLabel ("tekst :");
labelWiadomość.setBounds(5,535,50,50);
add(labelWiadomość);
poleWiadomość = new JTextField("");
poleWiadomość.setBounds(55,550,400,20);
add(poleWiadomość);
poleCzat = new JTextField ();
poleCzat.setBounds(20,20,550,500);
add(poleCzat);
}
public static void main(String[] args) {
GUI okienko = new GUI();
okienko.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
okienko.setVisible(true);
}
}