Client Server auf einem Motorola Milestone

A

asimov1981

Neues Mitglied
0
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 = (Button) findViewById(R.id.ok);
        final EditText entry = (EditText) findViewById(R.id.entry);
        
        button.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
           
                // übergebe IP Adresse
                testSocket ((CharSequence) entry.getText());
                
            }
        });

      
        
    }
    
    public void testSocket (CharSequence ipNumber){
        try{
            Toast.makeText(SocketAndroid.this, "Try to connect to Server " +ipNumber, Toast.LENGTH_SHORT).show();
             Socket skt = new Socket((String)ipNumber,1234);
             BufferedReader input = new BufferedReader(new InputStreamReader(skt.getInputStream()));
             Toast.makeText(SocketAndroid.this, (CharSequence) input, Toast.LENGTH_SHORT).show();
        }
        catch(Exception e){
            Toast.makeText(SocketAndroid.this, "Keine Connection zum Server möglich", Toast.LENGTH_SHORT).show();
                
        }
    }
    
}
 
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üß,
 
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:
Wie baust du die Netzwerk auf?

Es kann sehr gut sein, das deine Windows-Kiste von draussen nicht erreichbar ist.
 
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?
 
Mu du im Appstore gucken. Zumindest SSH-Klienten gab es dort - also ping wäre auf alle fälle drin.
 
Probiere mal folgendes:

Code:
_mSocket = new Socket();
_mSocket.connect(new InetSocketAddress(host, port), _mTimeout);
 

Ähnliche Themen

M
  • MikelKatzengreis
Antworten
5
Aufrufe
126
swa00
swa00
Jansenwilson
Antworten
1
Aufrufe
751
swa00
swa00
Zurück
Oben Unten