java网络编程 TCP协议练习——上传文本文档
首先建立客户端 UploadClient,思路:
* 1、需要先有socket端点。
* 2、客户端的数据源:同路径下的Client.txt
* 3、客户端的目的:socket
* 4、接受服务端的数据,源:socket
package net.p6.uploadtext;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
public class UploadClient {
public static void main(String[] args) throws IOException, IOException {
//1、创建socket客户端
Socket s = new Socket("主机IP",10005);
//2、文件读取
BufferedReader bufr = new BufferedReader(new FileReader("Client.txt"));
//3、socket输出流
PrintWriter out = new PrintWriter(s.getOutputStream(),true);
String line = null;
while((line = bufr.readLine())!=null){
out.println(line);
}
out.println("over");
//4、socket输入流,读取服务端返回的数据
BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
String str = bufIn.readLine();
System.out.println(str);
//5、关闭资源
bufr.close();
s.close();
}
}
其次,建立服务端UploadServer。思路:
*1、ServerSocket服务
* 2、获取socket对象
* 3、源:socket,读取客户端发过来的数据
* 4、目的:存储在同路径下的server.txt
package net.p6.uploadtext;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class UploadServer {
public static void main(String[] args) throws IOException {
//1、serversocket服务
ServerSocket ss = new ServerSocket(10005);
//2、获取socket对象
Socket s = ss.accept();
System.out.println(s.getInetAddress().getHostAddress()+"---------connected!");
//3、获取socket读取流,并装饰
BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
//4、获取socket输出流,
BufferedWriter bufw = new BufferedWriter(new FileWriter("server.txt"));
String line = null;
while((line = bufIn.readLine())!=null){
if("over".equals(line))
break;
bufw.write(line);
bufw.flush();
}
PrintWriter out = new PrintWriter(s.getOutputStream(),true);
out.println("上传成功");
bufw.close();
s.close();
ss.close();
}
}
结果如图: