У меня есть клиент Android и сервер Java, которые используют один и тот же сокет для отправки друг другу строки, но на самом деле не работает, и я не знаю почему.
В любом случае, мне нужно использовать только одну розетку.
Вот код для клиента и сервера:
public class CliActivity extends Activity implements OnClickListener {
Button b;
TextView tv;
BufferedReader in = null;
PrintStream out = null;
Socket client = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
b =(Button)findViewById(R.id.button1);
tv =(TextView)findViewById(R.id.textView1);
b.setOnClickListener(this);
}
public void onClick(View v) {
try {
client = new Socket("192.168.0.3",9000);
out = new PrintStream(client.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(client.getInputStream()));
out.write(("How are you?").getBytes());
out.close();
String message = in.readLine();
tv.setText(message);
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Сервер:
public class server {
public static void main(String[] args) {
BufferedReader in = null;
PrintStream out = null;
Socket client = null;
try {
ServerSocket server = new ServerSocket(9000);
client = server.accept();
out = new PrintStream(client.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(client.getInputStream()));
String message = in.readLine();
System.out.println(message);
out.write(("fine thanx").getBytes());
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Есть предложения?