ServerSocket ss=null;
try {
ss = new ServerSocket(10003);
Socket s=null;
while (true)
{
s= ss.accept();
InputStream is = s.getInputStream();
byte[] buf = new byte[1024];//这里的1024改成is.available()的时候 会出现有时候是无法接受信息的 有时候是 可以接受信息的
int count = is.read(buf);
System.out.println("服务器>>>>>" + new String(buf, 0, count));
OutputStream os = s.getOutputStream();
os.write("shoudao".getBytes());
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally
{
try {
ss.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
以上是服务端代码
try {
Socket s=new Socket("192.168.1.102",10003);
OutputStream os= s.getOutputStream();
os.write("哈哈".getBytes());
os.close();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
以上是 客户端代码 这样写是正常的 看注释
直接点 问题是出在is.available() 为什么有时候是无法得到数据的长度 求专业回答 本人从刚学习网络编程 学习完了UDP在研究 TCP |
|