Quote:
EDIT:
Oh man, das ist mir jetz peinlich: Das Problem saß vor dem Computer. Hier ist kein Bedarf mehr, Code funktioniert so wie er soll.
Hallo zusammen
Ich wollte via Java eine Apk schreiben welche mit meinem Raspberry Pi kommuniziert.
Ich hatte Mir dazu erstmal einige Tutorials in Python zu UDP und TCP angeguckt.
Anschließend hab ich mir das gleiche nochmal für Android angetan.
Wenn ich nun mit Python einen Clienten und einen Server nutze.
kommunizieren die beiden so wie gewollt.
Das gleiche auch bei Android, wenn ich eine ClientApk und eine ServerApk mach, kommunizieren die beiden wie verlangt.
Mein Problem ist nun:
Ich möchte mit einem Apk-Clienten etwas an den Python_Server schicken.
Aber irgendwie funktionierts einfach nicht.
Java-Client(Quelle: javacodegeeks.com):
Code:
package com.javacodegeeks.android.androidsocketclient;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
public class Client extends Activity {
private Socket socket;
private static final int SERVERPORT = 50000;
private static final String SERVER_IP = "192.168.1.21";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
new Thread(new ClientThread()).start();
}
public void onClick(View view) {
try {
EditText et = (EditText) findViewById(R.id.EditText01);
String str = et.getText().toString();
PrintWriter out = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(socket.getOutputStream())),
true);
out.println(str);
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
class ClientThread implements Runnable {
@Override
public void run() {
try {
InetAddress serverAddr = InetAddress.getByName(SERVER_IP);
socket = new Socket(serverAddr, SERVERPORT);
} catch (UnknownHostException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
}
Und der Python-Server (Quelle: wiki.python.org)
Code:
#!/usr/bin/env python
import socket
TCP_IP = ''
TCP_PORT = 50000
BUFFER_SIZE = 1024
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((TCP_IP, TCP_PORT))
s.listen(1)
conn, addr = s.accept()
print ('Connection address:', addr)
while True:
data = conn.recv(BUFFER_SIZE)
if not data: break
print ("received data:", data.decode('utf-8'))
conn.send("ist angekommen!".encode('utf-8')) # echo
conn.close()
Liegt es daran das der Server eine Codierte Nachricht erwartet ?
Oder benutzt das apk gar kein TCP sondern ein anderes Protokoll ?






