我有一个 C# 中的工作服务器和一个 Java (Android) 中的工作客户端。它完全有效,但连接本身只是单向的。只有客户端可以向服务器发送数据。我试图进行双向连接,但代码由于未知原因无法正常工作。
我哪里做错了?
C#- 服务器
public void SendBack(string message, NetworkStream stream)
{
if (stream.CanWrite)
{
byte[] candy = Encoding.ASCII.GetBytes(message + ";");
stream.Write(candy, 0, candy.Length);
stream.Flush();
Console.WriteLine("[SENT] " + message);
}
else { Console.WriteLine("ERROR! CANNOT WRITE ON NETWORKSTREAM!"); }
}
Java-客户端
//Creating the stream in the constructor
bReader = new BufferedReader(new InputStreamReader(gSocket.getInputStream()));
new Thread (new Runnable(){
public void run() {
Log.d(TAG, "Started listerner...");
ListenServer();
}
}).start();
//The function itself
private void ListenServer(){
try
{
String inputLine = "";
while (true){
inputLine = bReader.readLine();
if (inputLine != null) Log.d(TAG, "Got: " + inputLine);
}
}
catch (IOException e){ Log.d(TAG, "Could not listen to sever!"); }
}
编辑:忘记提及实际问题是什么......我启动服务器,行为像往常一样,客户端可以发送数据,服务器可以解释消息。Hoverwer,如果服务器发送一些东西,客户端什么也不做。我的意思是,它不执行
Log.d(TAG, "Got: " + inputLine);
代码。