1. Hast Du Lust, bei uns mitzuarbeiten und das AH-Team zu verstärken? Alle Details zu dieser aktuellen Herausforderung findest Du hier.
  1. TangaPanda, 28.03.2011 #1
    TangaPanda

    TangaPanda Threadstarter Neuer Benutzer

    Hey,
    erst mal ein Hallo an alle, bin neu hier.
    Ich habe folgendes Problem und hoffe ihr könnt mir da weiter helfen. Ich habe einen Thread geschrieben, der einen String über ein TCP Socket sendet. Funktioniert als Stand alone auch super. Jetzt wollt ich das in mein eigentliches Programm einbaun (eine Mainactivity in der 3 Tabs erstellt werden und 3 Activititys für die Tabs) und siehe da, nichts geht :). Es lässt sich kein Socket connecten. Beim Log "Try Socket B3" Wirft er ne IOException. Hat jemand ne Idee?

    Thread:

    Code:
    public class CommunicationThread implements Runnable {
        
        final String tag = "TAG";
        public String IP="meine Ip...."; // In meinem Programm ist es die richtige IP^^
        public int PORT=5000;
        Socket sk;
        PrintWriter out;
        SocketAddress sockaddr;
        
        @Override
        public void run() {
            // TODO Auto-generated method stub
            try {
                Log.v(tag,"Try Socket B1");
                SocketAddress sockaddr = new InetSocketAddress(IP, PORT);
                Log.v(tag,"Try Socket B2");
                sk = new Socket();
                Log.v(tag,"Try Socket B3");
                sk.connect(sockaddr);
                Log.v(tag,"Try Socket B4");
                out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(sk.getOutputStream())),true);
            } catch (UnknownHostException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                Log.v(tag,"Catch");
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                Log.v(tag,"Catch2");
            }
        }
    
    }
    
    Start des Threads ist dann in einer der 3 TabActivitys.

    Grüße!
     
  2. DieGoldeneMitte, 28.03.2011 #2
    DieGoldeneMitte

    DieGoldeneMitte Android-Lexikon

    Hat deine App die permission für den Internetzugriff?
     
    TangaPanda gefällt das.
  3. TangaPanda, 28.03.2011 #3
    TangaPanda

    TangaPanda Threadstarter Neuer Benutzer

    AAAAAAAA Du bist mein Held heute! Habs bei dem Testprogramm drin gehabt und vergessen zu übertragen... :D Danke!!!!!!!
     
  4. TangaPanda, 05.04.2011 #4
    TangaPanda

    TangaPanda Threadstarter Neuer Benutzer

    Hey ich hab noch ne Frage zu dem Ganzen..
    Ich hab jetzt die Permission erteilt und es ging. Jetzt wollt ich n Bild schicken lassen vom Java Server zum Android Client. Aber er kann keine Connection aufbauen. Bekomme immer eine IOException.
    Bekomme keine Verbindung hin.. Beim AndroidClientCode bricht er immer bei sock.connect(sockaddr); ab..
    Ich mach jetzt schon seit 4 Stunden dran rum und kapiers einfach nicht. Hier meine Codes:

    Java Server:

    Code:
    public class Server {
      
        public static void main (String [] args ) throws IOException {
            
            File f = new File("D:\\Programmieren\\Android\\Server\\src\\icon.png");
            System.out.println("File");
            ServerSocket s = new ServerSocket(4444);
            System.out.println("ServerSocket created:"+s.getLocalPort());
            
            while(true) {
                
                System.out.println("Waiting: ");
                Socket client = s.accept();
                System.out.println("Accepted connection : " + client);
    
                byte[] buffer = new byte[(int)f.length()];
                FileInputStream fis = new FileInputStream(f);
                BufferedInputStream bis = new BufferedInputStream(fis);
                bis.read(buffer,0,buffer.length);
    
                OutputStream oos = client.getOutputStream();
                System.out.println("sending...");
                oos.write(buffer,0,buffer.length);
                
                oos.flush();
                client.close();
                System.out.println("closed");
            }
        }
    }
    
    und hier Android Client:
    Code:
            Thread th = new Thread(new Runnable() {
    
                @Override
                public void run() {
    
                    int filesize=6022386; // filesize temporary hardcoded
    
                    long start = System.currentTimeMillis();
                    int bytesRead;
                    int current = 0;
                    // localhost for testing
                    try {
                        InetSocketAddress sockaddr = new InetSocketAddress(IP, PORT);
                        Socket sock = new Socket();
                        sock.connect(sockaddr);
                        // receive file
                        byte [] mybytearray  = new byte [filesize];
                        InputStream is = sock.getInputStream();
    
                        bytesRead = is.read(mybytearray,0,mybytearray.length);
                        current = bytesRead;
                        
                        do {
                           bytesRead =
                              is.read(mybytearray, current, (mybytearray.length-current));
                           if(bytesRead >= 0) current += bytesRead;
                        } while(bytesRead > -1);
    
                        Bitmap image = BitmapFactory.decodeByteArray(mybytearray, 0, bytesRead);
                        iv.setImageBitmap(image);
                        sock.close();
                    } catch (UnknownHostException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                        Log.v("LOG","Unknown Host Exception");
                    } catch (FileNotFoundException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    } catch (IOException e) {
                        Log.v("LOG","IO Exception");
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
            });
     
Die Seite wird geladen...
Ähnliche Themen Forum Datum
[ERLEDIGT] Wandernder Text Android App Entwicklung 17.10.2017
[OFFEN] Lists-in-List-Problem Android App Entwicklung 12.10.2017
[OFFEN] Problem mit meiner Login App Android App Entwicklung 10.06.2017
[OFFEN] git-Problem in Android Studio (Windows) Android App Entwicklung 24.05.2017
[ERLEDIGT] put in HashMap bringt App zum abstürzen Android App Entwicklung 22.05.2017
[ERLEDIGT] Problem mit Async Task und auszuführender Aufgabe Android App Entwicklung 02.05.2017
[ERLEDIGT] Problem beim Starten einer neuen Activity Android App Entwicklung 21.03.2017
Excel Dokument mithilfe von JExcelAPI auslesen funktioniert nicht :/ Android App Entwicklung 02.03.2017
Notizen App problem Android App Entwicklung 11.01.2017
Text View erzeugt rendering Problem Android App Entwicklung 18.11.2016
Du betrachtest das Thema "Socket Problem bei Tabview?" im Forum "Android App Entwicklung",