Witam! Chciałbym prosić Was o pomoc. Mam program i potrzebuje do niego komentarzy, nie łapie o co chodzi dokładnie w wielu miejscach a komentarze były by bardzo pomocne. Czy mógłby ktoś pomoc mi i te komentarze umieścić... Program to klient i serwer, także składa się z dwóch części. Poniżej umieszczam cały listing. Byłbym bardzo wdzięczny za pomoc.
//klient
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.io.;
import java.net.;
public class okno extends javax.swing.JFrame {
EchoKlient01 k = null;
public okno() { //tworzenie nowego okna
initComponents();
}
//@SuppressWarnings("unchecked")
private void initComponents() {
jButton1 = new javax.swing.JButton();
jScrollPane1 = new javax.swing.JScrollPane();
jTextArea1 = new javax.swing.JTextArea();
jTextField1 = new javax.swing.JTextField();
jButton2 = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jButton1.setText("Polacz");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
jTextArea1.setColumns(20);
jTextArea1.setRows(5);
jScrollPane1.setViewportView(jTextArea1);
jButton2.setText("Wyslij");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 380, Short.MAX_VALUE)
.addComponent(jTextField1, javax.swing.GroupLayout.DEFAULT_SIZE, 380, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addComponent(jButton1)
.addGap(18, 18, 18)
.addComponent(jButton2)))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 218, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jButton1)
.addComponent(jButton2))
.addContainerGap())
);
pack();
}// default komponenty
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
//EchoKlient01 k = null;
try{
k = new EchoKlient01();
new Thread(new odbieranie(k.gniazdo)).start();
} catch (IOException ex) { //wyswietlanie wyjatku
System.out.println(ex);
}finally{
// if(k!=null)k.zamknij();
}
}//GEN-LAST:event_jButton1ActionPerformed
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
try {
k.dzialaj();
} catch (IOException ex) {//GEN-LAST:event_jButton2ActionPerformed
System.out.println(ex);
}
}
public class EchoKlient01{
private Socket gniazdo;
private BufferedReader in1;
private PrintStream out;
public EchoKlient01() throws IOException{
this("localhost",7);
}
public EchoKlient01(String host, int port) throws IOException{
gniazdo = new Socket(host,port);
System.out.println("Polaczylismy sie z serwerem.");
in1 = new BufferedReader(
new InputStreamReader(gniazdo.getInputStream()));
out = new PrintStream(gniazdo.getOutputStream());
System.out.println("Strumienie ok.");
}
public void dzialaj() throws IOException{
String s = "";
s= jTextField1.getText(); //pobieranie z obiektu textfield
//wprowodzonego napisu i przypisanie zmiennej s
out.println(s); //wysylanie do serwera napisu
}
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new okno().setVisible(true);
}
});
}
public class odbieranie implements Runnable{
private Socket gniazdo;
public odbieranie(Socket g){
gniazdo=g;}
public void run() {
try {
BufferedReader in1 = new BufferedReader(
new InputStreamReader(gniazdo.getInputStream()));
String s = "";
// BufferedReader in2 = new BufferedReader(new InputStreamReader(System.in));
while(!s.equals("q")){
// System.out.print("Serwer: ");
s = in1.readLine();
// out.println(s);
jTextArea1.append("Serwer: " + s + "\n");
}jTextArea1.append("Polaczenie zakonczone.");
} catch (IOException ex) {
System.out.println(ex);
}
}
}
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTextArea jTextArea1;
private javax.swing.JTextField jTextField1;
}
//serwer
import java.net.;
import java.io.;
import java.util.*;
import java.util.logging.Level;
import java.util.logging.Logger;
class EchoSerwer1{
private ServerSocket serwer;
private boolean koniec = false;
private int portSerwera = 7; //ustawienie portu na stale
ArrayList<Obsluga> lista = new ArrayList<Obsluga>();
public EchoSerwer1(){
}
public EchoSerwer1(int port){
portSerwera = port;
}
public void uruchom(){
try{
serwer = new ServerSocket(portSerwera);
while(!koniec){
System.out.println("Serwer: czekam na klienta");
Socket gniazdo = serwer.accept();
System.out.println("Serwer: jest klient");
Obsluga o = new Obsluga(gniazdo);
lista.add(o);
new Thread(o).start(); //tworzenie nowego watku po polaczeniu klienta
}
}catch(IOException e){
try{serwer.close();
}catch(IOException ex){}
System.out.println(e);
}
}
public static void main(String[] args){
EchoSerwer1 serwer = new EchoSerwer1();
serwer.uruchom();
}
class Obsluga implements Runnable{
private Socket gniazdo;
public Obsluga(Socket g){
gniazdo=g;
}
public void send(String s){
PrintStream out;
try {
out = new PrintStream(gniazdo.getOutputStream());
out.println(s);
} catch (IOException ex) {
//Logger.getLogger(EchoSerwer1.class.getName()).log(Level.SEVERE, null, ex);
//System.out.println(ex);
}
}
public void run(){
try{
BufferedReader in=
new BufferedReader(
new InputStreamReader(gniazdo.getInputStream()));
String s="";
while(!s.equals("q")){ // petla while sprawdz czy klient nie wpisal q aby zakonczyc polaczenie
s=in.readLine();
System.out.println("Klient: "+s);
for(int i=0; i<lista.size();i++)
lista.get(i).send(s);
}System.out.println("Polaczenie zakonczone.\n");
}catch(IOException e){
System.out.println(e);
}finally{
try{
if(gniazdo!=null)gniazdo.close();
}catch(IOException e){}
}
}
}
}