Πρόβλημα με thread

Συζητήσεις για την Java

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Άβαταρ μέλους
papageorge
Δημοσιεύσεις: 122
Εγγραφή: 11 Ιαν 2006 20:54
Τοποθεσία: HRAKLEIO

Πρόβλημα με thread

Δημοσίευση από papageorge » 23 Ιουν 2008 21:24

Γράφω ένα server και έχω κάποιο πρόβλημα αν μπορεί να με βοηθήσει κάποιος... Δεν νομίζω να είναι κάτι σημαντικό αλλά αν έχει κάποιος τη γνώση θα με βοηθούσε πολύ :

Κώδικας: Επιλογή όλων

import java.net.*;
import java.io.*;
import java.util.ArrayList;

 public class echoServer implements Runnable{
 
 ArrayList<Socket>mySocket = new ArrayList<Socket>&#40;&#41;;
 ArrayList<InputStream>in = new ArrayList<InputStream>&#40;&#41;;
 ArrayList<OutputStream>out = new ArrayList<OutputStream>&#40;&#41;;
 int o;
 int das;
 
 echoServer&#40;ArrayList<Socket> csocket,ArrayList<InputStream> cin,ArrayList<OutputStream>cout,int w,int des&#41;&#123;
 	mySocket = csocket;
    in = cin;
    out = cout;
    o = w;
    das = des;

 &#125;
 	
 public static void main&#40;String&#91;&#93; args&#41;&#123;

    try&#123;
 	ServerSocket ss1 = new ServerSocket&#40;4444&#41;;
    ArrayList<Socket> csocket = new ArrayList<Socket>&#40;&#41;;
    ArrayList<InputStream>cin = new ArrayList<InputStream>&#40;&#41;;
    ArrayList<OutputStream>cout = new ArrayList<OutputStream>&#40;&#41;;
    int w;
    int des;
 	while&#40;true&#41;&#123;   
      csocket.add&#40;ss1.accept&#40;&#41;&#41;;
      cin.add&#40;csocket.get&#40;csocket.size&#40;&#41;-1&#41;.getInputStream&#40;&#41;&#41;;
      cout.add&#40;csocket.get&#40;csocket.size&#40;&#41;-1&#41;.getOutputStream&#40;&#41;&#41;;
      w = csocket.size&#40;&#41;-1;
      des = 1;
      new Thread&#40;new echoServer&#40;csocket,cin,cout,w,des&#41;&#41;.start&#40;&#41;;
 	&#125;
    &#125;catch&#40;IOException w&#41;&#123;
    	//IOException
    &#125;
 &#125;
 
 
 public void run &#40;&#41;&#123;
  //if&#40;das == 1&#41;&#123; System.out.println&#40;"ok"&#41;;das =0; &#125;
  //System.out.println&#40;mySocket.size&#40;&#41;&#41;;
  
  try&#123;
  	

   
  byte buffer&#91;&#93; = new byte&#91;1&#93;;
  int i;

  do
  &#123;
    i = in.get&#40;o&#41;.read&#40;buffer, 0, 1&#41;;
    for&#40;int r = 0;r<=o;r++&#41;&#123; 
      System.out.println&#40;o&#41;;   
      out.get&#40;r&#41;.write&#40;buffer, 0, 1&#41;;
    &#125;
  &#125; while&#40;i!=-1&#41;;

   in.get&#40;o&#41;.close&#40;&#41;;
   in.remove&#40;o&#41;;
   out.get&#40;o&#41;.close&#40;&#41;;
   out.remove&#40;o&#41;;
   mySocket.get&#40;o&#41;.close&#40;&#41;;
   mySocket.remove&#40;o&#41;;

 &#125;catch&#40;IOException e&#41;&#123;
 	//
 &#125; 
 &#125;
&#125;

Αρχικά γράφω τον κώδικα για ένα thread που λαμβάνει κάποιες τιμές μεταβλητών. Μετά φτιάχω ένα καινούργιο με άλλες τιμές μεταβλητών αλλά οι τιμές στο πρώτο μένουν ίδιες. Καμια ιδέα?
Εικόνα

Δύο πράγματα είναι άπειρα το σύμπαν και η ανθρώπινη βλακεία.

Einstein

Απάντηση

Επιστροφή στο “Java”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης