本帖最后由 董将 于 2012-12-22 19:45 编辑
/*
*
使用TCP协议写一个可以上传文件的服务器和客户端。
*/
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
//客户端
public class UploadClient {
public static void main(String[] args) throws IOException {
//创建Socket对象并且指定端口
Socket s = new Socket(InetAddress.getByName("192.168.1.1"), 22222);
//创建输出流对象
BufferedReader br = new BufferedReader(
new FileReader("exercise.txt"));
//创建写入流对象
PrintWriter pw = new PrintWriter(s.getOutputStream(), true);
String line = null;
while ((line = br.readLine()) != null) {
pw.println(line);
}
// 通过Socket对象通知你我的流已经结束
s.shutdownOutput();
BufferedReader server = new BufferedReader(new InputStreamReader(
s.getInputStream()));
String text = server.readLine();
System.out.println("服务器的反馈是:" + text);
//释放资源
br.close();
s.close();
}
}
import java.io.BufferedReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class UploadServer {
public static void main(String[] args) throws IOException {
//创建Socket对象并且指定端口
ServerSocket ss = new ServerSocket(22222);
Socket s = ss.accept();
//创建字符流输出对象
BufferedReader br = new BufferedReader(new InputStreamReader(
s.getInputStream()));
//创建字符流输出对象
PrintWriter pw = new PrintWriter(new FileWriter("Copy.txt"), true);
String line = null;
while ((line = br.readLine()) != null) {
pw.println(line);
}
//给一个反馈
PrintWriter pw2 = new PrintWriter(s.getOutputStream(), true);
pw2.println("上传文件成功");
//释放资源
pw.close();
// s.close();
ss.close();
}
}
运行后报错,下面是报错提示
Exception in thread "main" java.net.ConnectException: Connection refused: connect at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:519)
at java.net.Socket.connect(Socket.java:469)
at java.net.Socket.<init>(Socket.java:366)
at java.net.Socket.<init>(Socket.java:209)
at com.itheima.UploadClient.main(UploadClient.java:17)
求指点
|