import java.io.*;
import java.net.*;class Client
{
public static void main(String[] args) throws Exception
{
Socket s = new Socket("ip",10008);
BufferedReader bufr = new BufferedReader(new FileReader("Xxx.java"));
PrintWriter pwOut = new PrintWriter(s.getOutputStream(),true);
BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
String str = null; String line = null;
while((line=bufr.readLine())!=null)
{
pwOut.println(line);
}
s.shutdownOutput(); str = bufIn.readLine();
System.out.println("server:"+str); bufr.close();
s.close();
}
}class Server
{
public static void main(String[] args)throws Exception
{
ServerSocket ss = new ServerSocket(10008);
Socket s = ss.accept(); String ip = s.getInetAddress().getHostAddress();
System.out.println(ip+"....connected"); BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
PrintWriter pw = new PrintWriter(System.out,true);
String line = null;
while((line=bufIn.readLine())!=null)
{
pw.println(line);
} PrintWriter pwOut = new PrintWriter(s.getOutputStream(),true); String str = "上传成功";
pwOut.println(str); pw.close();
s.close();
ss.close();
}
}
以上代码,客户端能接收到服务端文件,但是服务端得不到客户端的反馈消息,输出为:server:null
这是什么原因呢?
import java.net.*;class Client
{
public static void main(String[] args) throws Exception
{
Socket s = new Socket("ip",10008);
BufferedReader bufr = new BufferedReader(new FileReader("Xxx.java"));
PrintWriter pwOut = new PrintWriter(s.getOutputStream(),true);
BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
String str = null; String line = null;
while((line=bufr.readLine())!=null)
{
pwOut.println(line);
}
s.shutdownOutput(); str = bufIn.readLine();
System.out.println("server:"+str); bufr.close();
s.close();
}
}class Server
{
public static void main(String[] args)throws Exception
{
ServerSocket ss = new ServerSocket(10008);
Socket s = ss.accept(); String ip = s.getInetAddress().getHostAddress();
System.out.println(ip+"....connected"); BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
PrintWriter pw = new PrintWriter(System.out,true);
String line = null;
while((line=bufIn.readLine())!=null)
{
pw.println(line);
} PrintWriter pwOut = new PrintWriter(s.getOutputStream(),true); String str = "上传成功";
pwOut.println(str); pw.close();
s.close();
ss.close();
}
}
以上代码,客户端能接收到服务端文件,但是服务端得不到客户端的反馈消息,输出为:server:null
这是什么原因呢?
解决方案 »
- 如何用POI读取WORD中的表格,并还原
- 崩溃了,高手帮我看看为什么无法mysql无法回滚!
- int [][][] i=new int [3][3][];
- 关于JAVA中的g.drawString()方法
- JAVA高手
- 哪位有SCJD电子参考书:Sun Certified Programmer & Developer for Java 2 Study Guide
- 也许这里不是水区,但请允许我向大家说声谢谢.
- 我现在用sun.net.ftp.*实现从ftp服务器上下载文件后删除服务器上文件,我没找到实现方法,求解。有其他方法也可以。(在线等)
- 看看我的"Hello World!"java程序,是哪里出错了?
- 关于Java applet
- java如何访问类中的全局变量
- windows记事本的“关于记事本”怎样用JAVA编写出来啊
shutdownOutput()给出的解释是:对于 TCP 套接字,任何以前写入的数据都将被发送,并且后跟 TCP 的正常连接终止序列。
它仅仅是一个结束标记,通知服务端结束传输。而关闭通道是用close()。
我就不知道了,在我的电脑上就回复null,好像在有些人的电脑上就行,是配置的问题吗?
将ip设为ipv6的地址,就能得到服务器上传成功的反馈;
原先设的是ipv4的地址,得到的是null;
这是什么原因呢?