- Forum-Beiträge: 6
31.05.2014, 10:29:30 via Website
31.05.2014 10:29:30 via Website
Hi,
ich programmier gerade nen kleinen Chat, von nem Android Client zu nem Java Server. Der Server läuft astrein, hab den auch schon mit nem Java Client getestet. Der läuft einwandfrei, und lauscht auf alles was rein kommt und sendet dann das was reinkommt an alle Clients zurück.
Aber der Android Client connected auch erst ohne Probleme zum Server. Aber wenn ich dann was senden will, dann geht das nicht. Die App crasht dann nicht und es passiert auch sonst nichts, der Code läuft einfach ab. Ich seh dann das Pre Execute ausgeführt wird, seh anhand von LogCat das doInBackground ausgeführt wird, und seh das PostExecute ausgeführt wird. Aber beim Server kommt nie was an. Was hab ich da denn falsch gemacht
Oder kann es an Firewall oder dergleichen liegen, aber dann würde er ja nich erfolgreich connecten, oder ?
private TextView MessageView;
private Button button;
private EditText input;
Socket sock;
BufferedReader reader;
PrintWriter writer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MessageView = (TextView)findViewById(R.id.Textfield);
MessageView.append("Hello User \n"
input=(EditText)findViewById(R.id.editText1);
button = (Button)findViewById(R.id.button1);
button.setOnClickListener(this);
new connect().execute();
}
@Override
public void onClick(View v) {
int corePoolSize = 60;
int maximumPoolSize = 80;
int keepAliveTime = 10;
BlockingQueue<Runnable> workQueue = new LinkedBlockingQueue<Runnable>(maximumPoolSize);
Executor threadPoolExecutor = new ThreadPoolExecutor(corePoolSize, maximumPoolSize, keepAliveTime, TimeUnit.SECONDS, workQueue);
new send().executeOnExecutor(threadPoolExecutor);
}
class connect extends AsyncTask<Void,Integer,String>{
@Override
protected String doInBackground(Void... params) {
try {
String server =InetAddress.getByName("jarves-server.no-ip.info".getHostAddress().toString();
sock= new Socket(server, 8000);
InputStreamReader streamReader = new InputStreamReader(sock.getInputStream());
reader= new BufferedReader(streamReader);
writer= new PrintWriter(sock.getOutputStream());
} catch (Exception e) {
Log.e("myLogs", e.toString());
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String v){
MessageView.append("Connected"
}
}
class send extends AsyncTask<Void, Integer, String>{
String sendmsg;
@Override
protected void onPreExecute(){
sendmsg=input.getText().toString();
input.setText(""
input.requestFocus();
}
@Override
protected String doInBackground(Void... arg0) {
writer.write(sendmsg);
writer.flush();
System.out.println("Test"
return sendmsg;
}
@Override
protected void onPostExecute(String v){
MessageView.append("\n Me: "+v);
}
}
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.