Socket Problem bei Tabview?

T

TangaPanda

Neues Mitglied
0
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!
 
Hat deine App die permission für den Internetzugriff?
 
  • Danke
Reaktionen: TangaPanda
AAAAAAAA Du bist mein Held heute! Habs bei dem Testprogramm drin gehabt und vergessen zu übertragen... :D Danke!!!!!!!
 
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();
                }
            }
        });
 

Ähnliche Themen

D
Antworten
17
Aufrufe
398
datNeMo
D
M
Antworten
3
Aufrufe
150
moin
M
Y
Antworten
4
Aufrufe
1.212
swa00
swa00
Zurück
Oben Unten