在Android设备中,客户端我使用以下代码
sock = new Socket("10.0.2.2", 3390);
// r = new BufferedReader(new InputStreamReader(sock.getInputStream()));
out = new BufferedWriter(new OutputStreamWriter(sock
.getOutputStream()));
String s = "abc";
out.write(s);
在服务器端,这是java桌面应用程序,我使用以下代码
InputStream m_Input = null;
ServerSocket MyService = null;
try {
MyService = new ServerSocket(3390);
serviceSocket = MyService.accept();
m_Input = serviceSocket.getInputStream();
}
catch (IOException e) {
System.out.println(e);
}
当我同时运行客户端,即android没有向服务器发送请求 用于读取数据我使用以下代码
byte[] data = null;
try
{
int ch = 0;
int length = m_Input.read();
if (length >0)
data= new byte[length];
length = 0;
while (length != data.length)
{
ch = m_Input.read(data, length, data.length-length);
if (ch == -1)
{
// System.out.println("ch is 0");
break;
}
length +=ch;
}
}
catch (IOException e)
{
System.err.println(e);
}
return new String(data);
}
答案 0 :(得分:0)
尝试在out.flush();
之后调用out.write(s);
。
这应该强制客户端向服务器发送“abc”。 请参阅OutputStream.flush上的文档。