1
我正試圖在java-pc服務器和android應用程序之間實現一個簡單的聊天應用程序。PC-Android,wifi通信
我混合了一些線上發現的教程,想出一個幾乎令人滿意的結果。
我的問題是:由於某種原因,我可以收到消息給我的服務器,但是當我從我的服務器(電腦)發送它時,我的android手機無法讀取字符串。
下面是部分在Java的PC程序發送消息: 首先發送按鈕方法:
public void sendMessageBtn(){
String message = userText.getText();
userText.setText("");
chatWindow.appendText("Server : "+ message + "\n");
// send the message to the client
mServer.sendMessage(message);
}
這裏是的sendMessage(消息)方法在我ServerClass:
public void sendMessage(String message){
System.out.println("Message blocked here");
if(mOut != null){
System.out.println("Message : " + message + " sent");
mOut.println();
mOut.flush();
System.out.println("Message fully sent");
}
}
當我收到所有的println();
在這裏手機端是從我asynk類覆蓋聽者的方法:eventhough收到或至少消息
public class connectTask extends AsyncTask<String, String, TCPClient>{
@Override
protected TCPClient doInBackground(String... message) {
// We crape a tpc client object and ...
mTcpClient = new TCPClient(new OnMessageReceived() {
// ... we implement the messageReceived previously defined as an interface
@Override
public void messageReceived(String message) {
// this method calls the onProgressUpdate
Log.e("messagedReceive method :", message);
publishProgress(message);
// Toast.makeText(getApplicationContext(),serverMessage,Toast.LENGTH_LONG).show();
}
});
mTcpClient.run();
return null;
}
@Override
protected void onProgressUpdate(String... values) {
super.onProgressUpdate(values);
// Log.e("On progressedUpdate", "super passed");
// in the arrayList we add the message from the server
// arrayList.add("Message received");
Log.e("MainActivity: ", "onProgressedUpdate call");
arrayList.add("Server: "+values[0]);
// notify the adapter that the data set has changed. This means that new message received
// from server was added to the list
mAdapter.notifyDataSetChanged();
}
}
從我的理解,感覺就像值[0]爲空一條消息是因爲我所有的Log.e被激活,表明onReceive方法已被激活。
在此先感謝您的幫助,我一直在研究此問題並開始變得絕望;)。
親切的問候,一個
非常感謝!現在一切都很好。 –
太棒了...如果工作,請關閉該問題.. – ELITE