我在Android上作爲服務器部件玩弄ServerSocket。我不明白它是如何表現的。這裏是我測試的:Android ServerSocket不向客戶端發送數據(客戶端c#,服務器java)
A1。在Android上實例化ServerSocket
A2。 ServerSocket向客戶端發送「hello」
A3。客戶端可以讀取「你好」,並可以回答ServerSocket
A4。 Android上的ServerSocket從客戶端接收答案
=>完美的作品
現在我想客戶端成爲第一個將消息發送到ServerSocket的:
B1。在Android上實例化ServerSocket
B2。客戶端將數據發送到服務器端(ServerSocket)
B3。 ServerSocket接收來自客戶端的數據
B4。不可能回覆客戶
可能是一種可能的正常行爲?
感謝
這裏是源代碼
public void startServer()
{
log("startServer");
UUID uuid = UUID.randomUUID();
final String sessionId = uuid.toString().replace("-", "");
log("Session ID = " + sessionId);
Thread t = new Thread(new Runnable() {
@Override
public void run() {
while (stopServer == false) {
ServerSocket serverSocket = null;
try {
serverSocket = new ServerSocket(7777);
final Socket socket = serverSocket.accept();
InputStream inputStream = socket.getInputStream();
String strFromClient = "";
int i = 0;
while (i != -1) {
try {
i = inputStream.read();
if (i != -1)
strFromClient += (char) i;
}catch (Exception e){
break;
}
}
inputStream.close();
OutputStream outputStream = socket.getOutputStream();
String strToClient = "test";
byte[] cArray = strToClient.getBytes();
outputStream.write(cArray);
outputStream.flush();
outputStream.close();
socket.close();
serverSocket.close();
log("end server");
} catch (Exception e) {
//log(e.toString());
}
}
}
});
t.start();
}
.............. No。 – greenapps
客戶端是C#中的NetworkStream,也許可能是問題(在調試模式下,ServerSockets發送的數據很好)? – dvxwifiscan
............ No。 – greenapps