Tôi đang phát triển một ứng dụng Android sử dụng TCP để kết nối thiết bị. Vấn đề là tôi mới lập trình socket. Tôi đã tạo thành công một mã máy chủ và máy khách. Mỗi khách hàng có thể kết nối với máy chủ và máy chủ có thể trả lời khách hàng. Nhưng tôi không thể làm cho máy chủ gửi tin nhắn đến tất cả các khách hàng được kết nối cùng một lúc. Các bước để làm cho máy chủ phát sóng một tin nhắn cho khách hàng là gì? Đây là mã máy chủ:Máy chủ Android TCP phát sóng
ServerSocket server = null;
try {
server = new ServerSocket(9092); // start listening on the port
} catch (IOException e) {
Log.d("btnCreate onClick", "Could not listen on port: 9092");
}
Socket client = null;
while(true) {
try {
client = server.accept();
} catch (IOException e) {
Log.d("btnCreate onClick", "Accept Failed");
}
//start a new thread to handle this client
Thread t = new Thread(new ClientConn(client));
t.start();
}
Và thread server:
class ClientConn implements Runnable {
private Socket client;
ClientConn(Socket client) {
this.client = client;
}
public void run() {
BufferedReader in = null;
PrintWriter out = null;
try {
/* obtain an input stream to this client ... */
in = new BufferedReader(new InputStreamReader(
client.getInputStream()));
/* ... and an output stream to the same client */
out = new PrintWriter(client.getOutputStream(), true);
} catch (IOException e) {
e.printStackTrace();
return;
}
String msg;
try {
while ((msg = in.readLine()) != null) {
Log.d("ClientConn", "Client says: " + msg);
out.println(msg);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
Bạn có thể giải thích ý bạn bằng cách "phát" trong ngữ cảnh của bạn không? TCP không phát sóng. –
Đã chỉnh sửa câu hỏi của tôi. Tôi muốn máy chủ gửi tin nhắn đến tất cả các khách hàng được kết nối. Không phải nó được gọi là phát sóng? Tôi mới vào lập trình socket. –