M 
		
				
				
			
		maksimilian
Ambitioniertes Mitglied
- 0
Hallo Ihr,
mein einfacher TCP-Client sieht (auf's Wesentliche reduziert) wie folgt aus:
	
	
	
		
Der Client hat bisher die Button-Clicks korrekt verarbeitet. Wie das so ist, tut er es nach einigen Änderungen am Code nicht mehr korrekt. Das äußert sich darin, dass nach einigen Button-Clicks, die korrekt verarbeitet werden, der myClientTask.execute() laut Debugger des Android Studios nicht mehr zum Betreten des MyClientTask-Codes führt, sondern nur im public final AsyncTask der übergeordneten Klasse (SyncTask.java) landet, von wo er sofort zurückkehrt hinter den execute Aufruf in MainActivity.
	
	
	
		
Es ist zuviel verlangt, mit diesen Angaben den Fehler zu finden. Mich würde aber interessieren, wie ich mit dem Debugger arbeiten muss, um die Ursache des Fehlverhaltens herauszufinden.
maksimilian
				
			mein einfacher TCP-Client sieht (auf's Wesentliche reduziert) wie folgt aus:
		Code:
	
	public class MainActivity<firstCall> extends AppCompatActivity {
    .....
    .....
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
       
        Button1 = (Button) findViewById(R.id.GUIButton1);
        Button1.setOnClickListener(Button1_OnClickListener);
    }
    OnClickListener Button1_OnClickListener = new OnClickListener() {   
        @Override
        public void onClick(View v) {   
               MyClientTask myClientTask = new MyClientTask(1);
               myClientTask.execute();
      }
   
    public class MyClientTask extends AsyncTask<Void, Void, Void> {
        String dstAct;
        String response = "";
        MyClientTask(int act,  TextView textResponse1) {
            dstAct = Integer.toString(act);
        }
        @Override
        protected Void doInBackground(Void... arg0) {
            Socket socket = null;
            DataOutputStream dataOutputStream = null;
            DataInputStream dataInputStream = null;Oben
            String s;
            try {
                socket = new Socket("192.168.178.66", 50000);
                dataOutputStream = new DataOutputStream(
                        socket.getOutputStream());
                dataInputStream = new DataInputStream(socket.getInputStream());
                dataOutputStream.writeUTF(dstAct); / der Server wird zu einer Aktion aufgefordert
                response = dataInputStream.readUTF(); // Nachricht vom Server, wird in
                                                      // onPostExecute() ausgegeben
              } ....
             
        } // doInBackground
       
        @Override
        protected void onPreExecute() {.....}
       
        @Override
        protected void onPostExecute() {.....}
       
    } // class MyClientTask
}Der Client hat bisher die Button-Clicks korrekt verarbeitet. Wie das so ist, tut er es nach einigen Änderungen am Code nicht mehr korrekt. Das äußert sich darin, dass nach einigen Button-Clicks, die korrekt verarbeitet werden, der myClientTask.execute() laut Debugger des Android Studios nicht mehr zum Betreten des MyClientTask-Codes führt, sondern nur im public final AsyncTask der übergeordneten Klasse (SyncTask.java) landet, von wo er sofort zurückkehrt hinter den execute Aufruf in MainActivity.
		Code:
	
	@MainThread
    public final AsyncTask<Params, Progress, Result> execute(Params... params) {
        return executeOnExecutor(sDefaultExecutor, params);
    }Es ist zuviel verlangt, mit diesen Angaben den Fehler zu finden. Mich würde aber interessieren, wie ich mit dem Debugger arbeiten muss, um die Ursache des Fehlverhaltens herauszufinden.
maksimilian
