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

    asimov1981 Threadstarter Neuer Benutzer

    Hallo ich entwickle gerade für ein Motorola Droid eine kleine client Server App. Leider finde ich irgendwie nicht den letzten Fehler, der verhindert das mein Client und mein Server miteinander reden. Ich wollte eigentlich TCP Sockets verwenden. Welche IP und welchen Port muß ich eigentlich nutzen wenn Server und Client über USB verbunden sind?
    Server Code:
    PHP:
    package ServerforSocket;

    import java.io.PrintWriter;
    import java.net.ServerSocket;
    import java.net.Socket;


    public class 
    ServerforSocket {

        
    /**
         * @param args
         */
           
    public static void main(String args[]) {
                  
    String data "Hallo ich bin ein socket Test";
                  try {
                      
    System.out.print("Try");
                          
                     
    ServerSocket srvr = new ServerSocket(1234);
                     
    Socket skt srvr.accept();
                     
    System.out.print("Server has connected!\n");
                     
    PrintWriter out = new PrintWriter(skt.getOutputStream(), true);
                     
    System.out.print("Try2");
                     
    out.print(data);
                     
    out.close();
                     
    skt.close();
                     
    srvr.close();
                  }
                  catch(
    Exception e) {
                     
    System.out.print("Whoops! It didn't work!\n");
                  }
               }
    }

    Und hier für den client (Motorola Milestone)

    PHP:
    package com.example.clientAndroid;

    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.net.Socket;

    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.Toast;

    public class 
    SocketAndroid extends Activity {
        
    /** Called when the activity is first created. */
        
    @Override
        
    public void onCreate(Bundle savedInstanceState) {
            
    super.onCreate(savedInstanceState);
            
    setContentView(R.layout.main);
            
            final 
    Button button = (ButtonfindViewById(R.id.ok);
            final 
    EditText entry = (EditTextfindViewById(R.id.entry);
            
            
    button.setOnClickListener(new View.OnClickListener() {
                public 
    void onClick(View v) {
               
                    
    // übergebe IP Adresse
                    
    testSocket ((CharSequenceentry.getText());
                    
                }
            });

          
            
        }
        
        public 
    void testSocket (CharSequence ipNumber){
            try{
                
    Toast.makeText(SocketAndroid.this"Try to connect to Server " +ipNumberToast.LENGTH_SHORT).show();
                 
    Socket skt = new Socket((String)ipNumber,1234);
                 
    BufferedReader input = new BufferedReader(new InputStreamReader(skt.getInputStream()));
                 
    Toast.makeText(SocketAndroid.this, (CharSequenceinputToast.LENGTH_SHORT).show();
            }
            catch(
    Exception e){
                
    Toast.makeText(SocketAndroid.this"Keine Connection zum Server möglich"Toast.LENGTH_SHORT).show();
                    
            }
        }
        
    }
     
  2. ko5tik, 24.02.2010 #2
    ko5tik

    ko5tik Android-Experte

    Der Portnummer ist egal (Hauptsache en beiden Seiten gleich). Dein Server sollte die Portnummer >1024 verwenden ( Wir sinf ja unter linux, und deine Anwendung hat sichelich keine Root-Rechte). Art von Kabelverbindung ist eigenlich dabei egal.

    Und zum Problemklärung würden die Stacktraces von Exceptions sicherlich gut beitragen (falls es welche gibt)

    Grüß,
     
  3. asimov1981, 25.02.2010 #3
    asimov1981

    asimov1981 Threadstarter Neuer Benutzer

    Ok also das läuft schonmal nicht. Gibt es nen Portscanner oder ähnliches?
    Von Windowsaus müßte der Port eigentlich offen sein, jedenfalls ist eine entsprechende Exception in der Firewall. Welche IP Nummer sollte man verwenden?
    Ist an meinem Code irgendwas falsch?
     
    Zuletzt bearbeitet: 25.02.2010
  4. ko5tik, 25.02.2010 #4
    ko5tik

    ko5tik Android-Experte

    Wie baust du die Netzwerk auf?

    Es kann sehr gut sein, das deine Windows-Kiste von draussen nicht erreichbar ist.
     
  5. asimov1981, 25.02.2010 #5
    asimov1981

    asimov1981 Threadstarter Neuer Benutzer

    Naja ich habe den Port in der Firewall geöffnet. Technische gesehen sollten sowohl Smartphone als auch Handy im selben Netzwerk (uni-Netzwerk) sein. Die Windowsmaschine kann auch den Droiden anpingen. Eine Art Pingfunktion fürs Android gibts nicht zufällig?
     
  6. ko5tik, 25.02.2010 #6
    ko5tik

    ko5tik Android-Experte

    Mu du im Appstore gucken. Zumindest SSH-Klienten gab es dort - also ping wäre auf alle fälle drin.
     
  7. Scogit, 25.02.2010 #7
    Scogit

    Scogit Android-Hilfe.de Mitglied

    Probiere mal folgendes:

    Code:
    _mSocket = new Socket();
    _mSocket.connect(new InetSocketAddress(host, port), _mTimeout);
    
     
Die Seite wird geladen...
Ähnliche Themen Forum Datum
Woher bekomme ich einen öffentlichen Server ? Android App Entwicklung 02.03.2017
Bei Erreichbarkeit eines Servers eine APP starten Android App Entwicklung 12.02.2017
Speichern von Server-Verbindungsdaten (Benutzereingabe) Android App Entwicklung 12.01.2017
Verbindung zu FTP Server schlägt fehl Android App Entwicklung 10.01.2017
Python Server / Android Client-Socket-Error Android App Entwicklung 03.11.2016
Datenübertragung zwischen Server PC und Client Android Android App Entwicklung 26.10.2016
Du betrachtest das Thema "Client Server auf einem Motorola Milestone" im Forum "Android App Entwicklung",