黑马程序员技术交流社区
标题:
关于TCP复制文件的一个小异常
[打印本页]
作者:
贾浩田
时间:
2014-8-14 10:58
标题:
关于TCP复制文件的一个小异常
为何我自己写的通过TCP服务来进行文件复制过程,运行时会出现socketException呢?API中也没有发现那个方法会抛出这个异常,求高手帮忙
作者:
ddewym123
时间:
2014-8-14 11:02
你代码都不贴出来,别人怎么帮你
作者:
贾浩田
时间:
2014-8-14 11:48
class Demo96
{
public static void main(String[] args) throws Exception
{
client();
System.out.println("Hello World!");
}
public static void client() throws Exception{
Socket s = new Socket("192.168.0.106", 1236);
File file = new File("f://1.txt");
if(file.exists() == false){
return;
}
//数据源
BufferedReader br = new BufferedReader(new FileReader(file));
//数据目的
BufferedWriter bw_socket =
new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
String line = null;
while((line = br.readLine()) != null){
bw_socket.write(line);
bw_socket.newLine();
bw_socket.flush();
}
//接收来自服务端反馈
BufferedReader br_socket =
new BufferedReader(new InputStreamReader(s.getInputStream()));
String str = br_socket.readLine();
System.out.println(str);
s.close();
br.close();
}
}
class Demo97
{
public static void main(String[] args) throws Exception
{
server();
System.out.println("Hello World!");
}
public static void server()throws Exception {
ServerSocket ss = new ServerSocket(1236);
Socket s = ss.accept();
System.out.println("连接的客户端ip: "+s.getInetAddress().getHostAddress());
//File file = new File("f://1.txt");
//数据源
BufferedReader in_socket =
new BufferedReader(new InputStreamReader(s.getInputStream()));
//数据目的
BufferedWriter bw =
new BufferedWriter(new FileWriter("f://1(1).txt"));
String line = null;
//进行写数据
while((line = in_socket.readLine()) != null){
System.out.println(line);
bw.write(line);
bw.newLine();
bw.flush();
}
//反馈给客户端
BufferedWriter bw_socket =
new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
bw_socket.write("upload success!!");
//关闭客户端和复制文件的输出流
ss.close();
s.close();
}
}
作者:
yqj
时间:
2014-8-14 15:55
在我电脑上测试多次都能同,lz把ServerSocket();端口调大些试试,1236端口比较小可能已经被占用,另外为了在client端读到服务端的反馈信息需要在client端数据发送完后加上输出结束标志(s.shutdownOutput(););同时服务器端的 反馈给客户端信息写完后要刷新,不然客户端会收到null(测试出来的)
能力有限希望能解决楼主的问题!
作者:
贾浩田
时间:
2014-8-14 23:00
yqj 发表于 2014-8-14 15:55
在我电脑上测试多次都能同,lz把ServerSocket();端口调大些试试,1236端口比较小可能已经被占用,另外为了 ...
:):)谢谢,:)
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2