我在android中製作應用程序時,可以在用戶在Android鍵盤上輸入時向服務器C#發送字符代碼。
這是在android系統側發送方法:通過套接字發送字符串時的延遲
public Boolean writeMessage(String message) {
try {
printWriter = new PrintWriter(socket.getOutputStream(), true);
printWriter.println(message);
return true;
} catch (Exception ex) {
Log.e(TAG,"write error: " +ex.getMessage());
return false;
}
}
和服務器監聽的消息(C#):
Thread myThread = new Thread(new ThreadStart(ServeClient));
myThread.Start();
void ServeClient(){
StreamReader reader = new StreamReader(tcpClient.GetStream());
while (true)
{
try
{
String message = reader.ReadLine();
if (message != null)
{
Console.WriteLine(message);
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
我的代碼工作,但是,當用戶輸入的速度越快,服務器延遲在1讀取信息,2或3秒(我用測試方法得到字符,當用戶輸入時,它工作正常,不會延遲)。
我的問題在哪裏?提前致謝!
您需要多線程處理您的服務器。 – Phil
當然,上面的代碼放在線程中。 – R4j