1
大家好,我正在编写我的Android应用程序中的服务器套接字。它应该只允许一个客户端。有趣的是,我希望我的服务器在客户端可用时向客户端发送消息(字符串)。我有一串字符串,我希望我的服务器通过一个字符串尝试将字符串发送给客户端,如果队列空不发送,并且只要某些字符串被推入队列发送它。 这是我如何做到这一点:Java中的服务器套接字(Android)
public class Resource {
public static Queue<String> q = new LinkedList<String>();
public static synchronized void addString(String commands) {//for reader
semaphore.add(commands);
}
public synchronized String getString() {
if (!semaphore.isEmpty()) {
return semaphore.remove();
} else return "0";
}
}
对于我有串队列q其中我可以从另一个类添加字符串。这里是我的服务器代码:
new Thread(new Runnable() {
@Override
public void run() {
while (true) {
try {
// Listens for a connection to be made to this socket.
Socket socket = my_serverSocket.accept();
//send message to client
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
out.println("1");
BufferedReader in = new BufferedReader(new InputStreamReader(socket
.getInputStream()));
String msg = in.readLine();
System.out.println("message is: " + msg);
// tidy up
//in.close();
//socket.close();
} catch (IOException ioe) {
ioe.printStackTrace();
} catch (SecurityException se) {
se.printStackTrace();
}
}
}
}).start();