Socket-Verbindung zwischen Computer und Android-Gerät

B

Benützername_re_54

Neues Mitglied
0
Hallo liebe Leute

und zwar hab ich mich mit Socketverbindungen auseinandergesetzt.
Ich habe eine JAVA-Applikation an meinem PC geschrieben, welches der Server ist (dieser funktioniert einwandfrei).

Mein Problem liegt bei meinem Client "App". Hier ist mal der Code:

MainActivity:
Code:
package com.example.coonection;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity implements OnClickListener{

    Client client;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        Button start = (Button) findViewById(R.id.button1);
        start.setOnClickListener(this);
        
        Button send = (Button) findViewById(R.id.button2);
        send.setOnClickListener(this);
        
        client = new Client();
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        switch(v.getId()){
        case R.id.button1: 
            new ConnectingThread().start();
            break;
        case R.id.button2:
            new SendingThread().start();
            break;
        }
    }
    
    class ConnectingThread extends Thread{
        public void run(){
            client.connect();
        }
    }
    
    class SendingThread extends Thread{
        public void run(){
            client.writeMessage();
        }
    }

}
Client
Code:
package com.example.coonection;

import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.net.UnknownHostException;

public class Client {
    
    ObjectInputStream sInput;
    ObjectOutputStream sOutput;
    Socket clientSocket;
    
    Client(){
        
    }
    
    void connect(){
        new ClientThread().start();
    }
    
    void writeMessage(){
        try {
            sOutput.writeObject("ssdsdsd");
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    
    class ClientThread extends Thread{
        public void run(){
            while(true){
                
                try {
                    clientSocket = new Socket("localhost", 9999);
                    sOutput = new ObjectOutputStream(
                            clientSocket.getOutputStream());

                    sInput = new ObjectInputStream(
                            clientSocket.getInputStream());

                    String message = (String) sInput.readObject();
                    System.out.println(message);
                    
                } catch (UnknownHostException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (ClassNotFoundException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
    }
}
Hier ist die Fehlermeldung ConnectException

Code:
07-29 21:34:23.074: W/System.err(3472): java.net.ConnectException: failed to connect to localhost/127.0.0.1 (port 9999): connect failed: ECONNREFUSED (Connection refused)
07-29 21:34:23.074: W/System.err(3472):     at libcore.io.IoBridge.connect(IoBridge.java:114)
07-29 21:34:23.074: W/System.err(3472):     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
07-29 21:34:23.074: W/System.err(3472):     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
07-29 21:34:23.074: W/System.err(3472):     at java.net.Socket.startupSocket(Socket.java:596)
07-29 21:34:23.074: W/System.err(3472):     at java.net.Socket.tryAllAddresses(Socket.java:127)
07-29 21:34:23.079: W/System.err(3472):     at java.net.Socket.<init>(Socket.java:177)
07-29 21:34:23.079: W/System.err(3472):     at java.net.Socket.<init>(Socket.java:149)
07-29 21:34:23.079: W/System.err(3472):     at com.example.coonection.Client$ClientThread.run(Client.java:37)
07-29 21:34:23.079: W/System.err(3472): Caused by: libcore.io.ErrnoException: connect failed: ECONNREFUSED (Connection refused)
07-29 21:34:23.079: W/System.err(3472):     at libcore.io.Posix.connect(Native Method)
07-29 21:34:23.079: W/System.err(3472):     at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:85)
07-29 21:34:23.079: W/System.err(3472):     at libcore.io.IoBridge.connectErrno(IoBridge.java:127)
07-29 21:34:23.079: W/System.err(3472):     at libcore.io.IoBridge.connect(IoBridge.java:112)
07-29 21:34:23.079: W/System.err(3472):     ... 7 more
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>



Könnt ihr mir sagen wo der Fehler liegt?
 
Ich kenne mich nicht wirklich viel damit aus, aber du versuchst ja zu localhost zu connecten, also an sich zum Telefon selber. Geht ja schlecht, wenn der Server auf deinem Rechner läuft.

Gesendet von meinem Galaxy Nexus mit der Android-Hilfe.de App
 
Würde ich auf Anhieb auch sagen.
Gibt halt die IP von deinem Rechner ein, wenn der Server da läuft könnte es evtl schon funktionieren.
 
Danke für die antworten, ich werde es gleich mit der ip meines rechners versuchen
 

Ähnliche Themen

M
Antworten
10
Aufrufe
824
maksimilian
M
H
Antworten
2
Aufrufe
1.311
Hcman
H
M
Antworten
4
Aufrufe
1.174
swa00
swa00
Zurück
Oben Unten