Witam. Mam taki o to problem. Stworzylem klase, ktora laczy sie uzytkownikami po IP, ktore to najpierw czyta z pliku. Jesli podczas odczytu nie bedzie wpisu w pliku dla danego klienta, to wyswietla sie komunikat 'wpisz adres ip dla tego uzytkownika'. Dla pojedynczego klienta to dziala,jak zaznacze 2lub wiecej, gdy w pliku nie ma zadnego wpisu to tez. Jednak gdy np. ktorys z klientow ma nadany adres ip, to sie z nim probuje polaczyc, ale juz dla kolejnego zaznaczonego, ktory nie ma nadanego ip, nie wyswietla komunikatu ' wpisz adres ip dla tego uzytkownika', chociaz w kodzie to jest zapisane. Gdzie lezy problem? Poniewaz ja juz nie mam pomyslu...
package SYSPOWTCPKOPIA;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.net.Socket;
import java.util.ArrayList;
import javax.swing.JOptionPane;
public class RepeatingClass {
Serwer serwerClass;
protected Socket klient;
DataInputStream wejscie;
DataOutputStream wyjscie;
String msg;
Clients_Threads cthr;
int port = 1234;
String line,lineC;
File plik,plikC;
Object line1,line2,line3,line4,line5;
Object line11,line22,line33,line44,line55;
Object line111,line222,line333,line444,line555;
Object line1c,line2c,line3c,line4c,line5c;
Object line11c,line22c,line33c,line44c,line55c;
Object line111c,line222c,line333c,line444c,line555c;
ArrayList file,fileC;
public RepeatingClass(Serwer serwerClass) {
// TODO Auto-generated constructor stub
this.serwerClass = serwerClass;
//System.out.print(serwerClass.line1c);
}
public void Client1(){
plik = new File("f:/dane.txt");
file = new ArrayList();
plikC = new File("f:/Contacts.txt");
fileC = new ArrayList();
try
{
BufferedReader inC = new BufferedReader(new FileReader(plikC));
while ((lineC = inC.readLine()) != null)
fileC.add(lineC);
line1c = fileC.get(0);
inC.close();
}catch (IOException e){
System.out.println(e);
}catch (IndexOutOfBoundsException e){
line1c = "User 1";
}
try
{
BufferedReader in = new BufferedReader(new FileReader(plik));
while ((line = in.readLine()) != null)
file.add(line);
line1 = file.get(0);
in.close();
}
catch (IOException e)
{
System.out.println(e);
}catch (IndexOutOfBoundsException e){
JOptionPane.showMessageDialog(null, "Wpisz adres ip użytkownika: "+line1c);
line1 = "localhost";
}
System.out.print("Watek klienta nr 1\n");
msg = serwerClass.pole1.getText();
//pierwszy powiadamiany
try{
klient = new Socket(line1.toString(),port);
wyjscie = new DataOutputStream(new BufferedOutputStream(klient.getOutputStream()));
try{
wyjscie.writeUTF(msg);
}catch(NullPointerException e){
}
wyjscie.close();
klient.close();
if(klient.isConnected())
System.out.println("Polaczyles sie z " +klient);
serwerClass.icon1.setIcon(serwerClass.gif_T);
serwerClass.p1.setEnabled(false);
}catch(IOException e){
System.out.println("Połączenie z "+line1.toString()+" nie udalo sie");
serwerClass.icon1.setIcon(serwerClass.gif_F);
serwerClass.p1.setEnabled(true);
}
}
public void Client2(){
plik = new File("f:/dane.txt");
file = new ArrayList();
plikC = new File("f:/Contacts.txt");
fileC = new ArrayList();
try
{
BufferedReader inC = new BufferedReader(new FileReader(plikC));
while ((lineC = inC.readLine()) != null)
fileC.add(lineC);
line2c = fileC.get(1);
inC.close();
}catch (IOException e){
System.out.println(e);
}catch (IndexOutOfBoundsException e){
line2c = "User 2";
}
try
{
BufferedReader in = new BufferedReader(new FileReader(plik));
while ((line = in.readLine()) != null)
file.add(line);
line2 = file.get(1);
System.out.print(line2);
in.close();
}
catch (IOException e)
{
System.out.println(e);
}catch (IndexOutOfBoundsException e){
JOptionPane.showMessageDialog(null, "Wpisz adres ip dla użytkownika: "+line2c);
line2 = "localhost";
}
System.out.print("Watek klienta nr 2\n");
msg = serwerClass.pole1.getText();
//pierwszy powiadamiany
try{
klient = new Socket(line2.toString(),port);
wyjscie = new DataOutputStream(new BufferedOutputStream(klient.getOutputStream()));
try{
wyjscie.writeUTF(msg);
}catch(NullPointerException e){
}
wyjscie.close();
klient.close();
if(klient.isConnected())
System.out.println("Polaczyles sie z " +klient);
serwerClass.icon2.setIcon(serwerClass.gif_T);
serwerClass.p2.setEnabled(false);
}catch(IOException e){
System.out.println("Połączenie z "+line2.toString()+" nie udalo sie");
serwerClass.icon2.setIcon(serwerClass.gif_F);
serwerClass.p2.setEnabled(true);
}
}
//i tu nastapni klienci CLient3,4,itd...
//funckje z tej klasy wywoluje w taki sposob w innej klasie, odwolujac sie do klasy z klientami...
if(e.getSource()==wyslij1){
ramka.dispose();
if(chxb1.isSelected()){
//System.out.print("1111111111\n");
new Thread(){
public void run(){
rpc.Client1();
}
}.start();
}else if(chxb2.isSelected()){
//System.out.print("2222222222\n");
new Thread(){
public void run(){
rpc.Client2();
}
}.start();
}else if(chxb3.isSelected()){
//System.out.print("3333333333\n");
new Thread(){
public void run(){
rpc.Client3();
}
}.start();
}else if(chxb4.isSelected()){
//System.out.print("4444444444\n");
new Thread(){
public void run(){
rpc.Client4();
}
}.start();
//}
//if(chxb5.isSelected()){
}else if(chxb5.isSelected()){
//System.out.print("5555555555\n");
new Thread(){
public void run(){
rpc.Client5();
}
}.start();
}
}