Python client sendet an Java/Android Server NULL
Verfasst: Dienstag 7. Oktober 2014, 10:01
Hallo
Ich habe einen Python client der sich mit einem Android Server verbindet.
Der client sendet aber nicht nur die nachricht sondern auch NULL, 6 pro nachricht.
Mit einem Java Client wird nur die Nachricht gesendet.
Client :
Server (java):
Kann mir jemand Sagen wie die null sendungen verhindert werden können?
Ich habe einen Python client der sich mit einem Android Server verbindet.
Der client sendet aber nicht nur die nachricht sondern auch NULL, 6 pro nachricht.
Mit einem Java Client wird nur die Nachricht gesendet.
Client :
Code: Alles auswählen
import socket
import time
ip = '192.168.43.1'
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((ip, 1511))
try:
for x in range(2):
nachricht = "test"+"\n"
s.send(nachricht)
#antwort = s.recv(1024)
print("sende")
finally:
s.close()
Code: Alles auswählen
public CommunicationThread(Socket clientSocket) {
this.clientSocket = clientSocket;
try {
Log.v(TAG, "CommunicationThread, instanziert");
this.input = new BufferedReader(new InputStreamReader(
this.clientSocket.getInputStream()));
this.output = new PrintWriter(new BufferedWriter(new OutputStreamWriter(clientSocket.getOutputStream())), true);
address = clientSocket.getInetAddress();
if(!known_addresses.contains(clientSocket.getInetAddress()))
known_addresses.add(clientSocket.getInetAddress());
} catch (IOException e) {
Log.e(TAG, "ClientSocket inputStreamReader error");
e.printStackTrace();
}
}
// eine zeile vom imput einlesen, wenn der thread nicht unterbraichen
// ist
public void run() {
while (!Thread.currentThread().isInterrupted()) {
try {
Log.v(TAG, "CommunicationThread Running");
String response = "#,nix,nix,nix,nix,#";
PrintWriter out = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(clientSocket.getOutputStream())),
true);
String read = input.readLine();
if (read != null){
list.setNachticht(read, address.getHostAddress());
out.println(response);
out.flush();
Log.d(TAG, "Antwort=\""+response+"\"");
updateConversationHandler.post(new updateUIThread(read, address));
}
else{
Log.e(TAG, "null erhalten");
list.setNullcount();
counter++;
if (counter > 5){
Log.e(TAG, "Restarte conntection");
list.conntectionreset();
counter = 0;
this.clientSocket.close();
this.clientSocket = serverSocket.accept();
}
}
} catch (IOException e) {
Log.e(TAG, "updateConversationHandler error");
e.printStackTrace();
}
}
}
}
// texst in den viewtun
class updateUIThread implements Runnable {
private String msg = "";
private InetAddress address;
// private TextView text = (TextView) findViewById(R.id.text2);
public updateUIThread(String str, InetAddress address) {
this.msg = str;
this.address = address;
}
@Override
public void run() {
Log.d(TAG, "Daten erhalten: \""+msg+"\", würden an dieser Stelle zur verarbeitung weitergegeben werden, IP="+address.getHostAddress());
if (msg != null){
nullcounter = 0;
}
else{
nullcounter++;
if (nullcounter >100){
}
}
}
}
public interface listener{
public void setNachticht(String nachrichat, String IP);
public void setNullcount();
public void conntectionreset();
}
}
Code: Alles auswählen
package com.example.connectiontest;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.TextView;
public class MainActivity extends Activity implements WifiListener.listener {
private TextView nachricht;
private TextView ip;
private TextView nullcounter;
private TextView connresets;
private TextView nachrichtcounter;
private int stringcounter =0;
private int ncounter = 0;
private int resetcounter =0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this.nachricht = (TextView) this.findViewById(R.id.laststring);
this.ip = (TextView) this.findViewById(R.id.ip);
this.nullcounter = (TextView) this.findViewById(R.id.nullcounter);
this.connresets = (TextView) this.findViewById(R.id.connresets);
this.nachrichtcounter = (TextView) this.findViewById(R.id.stringcounter);
new WifiListener(this);
}
@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;
}
public void setNachticht(final String nachrichat, final String IP){
stringcounter ++;
runOnUiThread(new Runnable() {
@Override
public void run() {
nachrichtcounter.setText(" "+stringcounter+"");
nachricht.setText(" "+nachrichat);
ip.setText(" "+IP);
}
});
}
public void setNullcount(){
ncounter++;
runOnUiThread(new Runnable() {
@Override
public void run() {
nullcounter.setText(" "+ncounter+"");
}
});
}
public void conntectionreset(){
resetcounter++;
runOnUiThread(new Runnable() {
@Override
public void run() {
connresets.setText(" "+resetcounter+"");;
}
});
}
}