private void send() {
try {
tvGetContent.append("我说:" + etSendContent.getText().toString()
+ "\n");
writer.write(etSendContent.getText().toString() + "\n");
writer.flush();
etSendContent.setText("");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private void connect() {
new AsyncTask<Void, String, Void>() {
@Override
protected Void doInBackground(Void... params) {
String line;
try {
socket = new Socket(etSendIp.getText().toString(), 12345);
writer = new BufferedWriter(new OutputStreamWriter(
socket.getOutputStream()));
reader = new BufferedReader(new InputStreamReader(
socket.getInputStream()));
publishProgress("success");
while ((line = reader.readLine()) != null) {
publishProgress(line);
}
reader.close();
} catch (UnknownHostException e) {
Toast.makeText(MainActivity.this, "无法建立链接",
Toast.LENGTH_SHORT).show();
} catch (IOException e) {
Toast.makeText(MainActivity.this, "无法建立链接",
Toast.LENGTH_SHORT).show();
}
return null;
}
@Override
protected void onProgressUpdate(String... values) {
if (values[0] == "success") {
Toast.makeText(MainActivity.this, "链接建立成功",
Toast.LENGTH_SHORT).show();
}
tvGetContent.append("别人说:" + values[0] + "\n");
super.onProgressUpdate(values);
}
}.execute();
}
主要问题是;客户端与客户端不能通讯,客户端发送消息到服务器,服务器是能结束消息的,同时服务器也能正确的发送消息出来,但是客户端却接收不到消息。当手动关闭服务器的时候,客户端则会一次性把前面发送的消息全部接收到。
这是我客户端发送消息和接受消息的代码 服务器短的代码应该没有问题,求各位大神指点一下