Hej! jag började programmera i java för ett tag sen och lär mig sakta men säkert. Nu har jag tagit mig lite vatten över huvudet och gett mig på ett försök till socket programmering då behovet av en lite app uppstod. Grunden är egentligen bara att jag vill kunna trycka på / släppa upp en knapp och skicka en sträng till en server.
vad gör jag för fel? alt finns det någon mycket enklare lösning för det här som jag har missat.
Kod:
package carne.client;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.*;
import android.widget.Button;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
import carne.client.R;
public class Carne extends Activity {
private final static String TAG = "Carne";
Socket ClientSocket = null;
DataOutputStream out = null;
private Button Bajs;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Connect();
setContentView(R.layout.main);
this.setContentView(R.layout.main);
this.Bajs = (Button)this.findViewById(R.id.Bajs);
this.Bajs.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View view, MotionEvent event) {
switch(event.getAction()){
case MotionEvent.ACTION_DOWN:
SendCommand("ner");
break;
case MotionEvent.ACTION_UP:
SendCommand("upp");
break;
}
return true;
}
});
}
public void OnPause(){
super.onPause();
Disconnect();
this.finish();
}
public void onFreeze(){
}
public void onDestroy()
{
Disconnect();
super.onDestroy();
}
public void Connect(){
try{
Log.v(TAG, "Attempting to connect!");
ClientSocket = new Socket("10.0.2.1", 2004);
ClientSocket.setSoTimeout(5);
} catch (IOException IOE) {
Log.e(TAG, IOE.getMessage());
}
try{
out = new DataOutputStream(ClientSocket.getOutputStream());
} catch (UnknownHostException UHE) {
Log.e(TAG, UHE.getMessage());
} catch (IOException IOE) {
Log.e(TAG, IOE.getMessage());
}
SendCommand("CONN");
}
public void Disconnect(){
SendCommand("DISC");
}
public void SendCommand(String command){
try {
out.writeUTF(command);
out.flush();
Log.v(TAG,"Sending command: "+command);
} catch (IOException IOE) {
Log.e(TAG, IOE.getMessage());
}
}
}
Tack på förhand
RaiL