16.练习:TCP上传文件到服务器
利用TCP上传一个文本文件到服务端来保存,如果上传完成提示上传成功
重点:1.客户端文件读完后,添加一个文件结束标记 Socket里的setshutdownOutput()方法
import java.io.*;
import java.net.*;
class TextClient //客户端
{
public static void main(String[] args)
{
try
{
//创建Socket服务
Socket s = new Socket("127.0.0.1",8801);
//创建输入流
BufferedReader bufr = new BufferedReader(new FileReader("BankDemo.java"));
//创建输出打印流(和BufferedWriter相似)
PrintWriter out = new PrintWriter(s.getOutputStream(),true);
String line=null;
while((line=bufr.readLine())!=null)
{
out.println(line);
}
//添加文件结束标记
s.shutdownOutput();
//创建输入流与Socket绑定
BufferedReader bufw = new BufferedReader(new InputStreamReader(s.getInputStream()));
String data = bufw.readLine();
System.out.println(data);
}
catch (IOException e)
{
throw new RuntimeException("操作失败");
}
}
}
class TextServer //服务器端
{
public static void main(String[] args)
{
try
{
//创建ServerSocket服务
ServerSocket ss = new ServerSocket(8801);
//得到客户端Socket服务
Socket s = ss.accept();
//创建输入流与Socket绑定
BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
//创建打印输出流,将读到的数据写到文件中
PrintWriter out = new PrintWriter(new FileWriter("server.txt"),true);
String line=null;
while((line=bufIn.readLine())!=null)
{
out.println(line);
}
//创建输出流与Socket绑定
PrintWriter pw = new PrintWriter(s.getOutputStream(),true);
pw.println("上传成功!");
}
catch (IOException e)
{
throw new RuntimeException("操作失败");
}
}
}
利用TCP上传一个文本文件到服务端来保存,如果上传完成提示上传成功
重点:1.客户端文件读完后,添加一个文件结束标记 Socket里的setshutdownOutput()方法
import java.io.*;
import java.net.*;
class TextClient //客户端
{
public static void main(String[] args)
{
try
{
//创建Socket服务
Socket s = new Socket("127.0.0.1",8801);
//创建输入流
BufferedReader bufr = new BufferedReader(new FileReader("BankDemo.java"));
//创建输出打印流(和BufferedWriter相似)
PrintWriter out = new PrintWriter(s.getOutputStream(),true);
String line=null;
while((line=bufr.readLine())!=null)
{
out.println(line);
}
//添加文件结束标记
s.shutdownOutput();
//创建输入流与Socket绑定
BufferedReader bufw = new BufferedReader(new InputStreamReader(s.getInputStream()));
String data = bufw.readLine();
System.out.println(data);
}
catch (IOException e)
{
throw new RuntimeException("操作失败");
}
}
}
class TextServer //服务器端
{
public static void main(String[] args)
{
try
{
//创建ServerSocket服务
ServerSocket ss = new ServerSocket(8801);
//得到客户端Socket服务
Socket s = ss.accept();
//创建输入流与Socket绑定
BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
//创建打印输出流,将读到的数据写到文件中
PrintWriter out = new PrintWriter(new FileWriter("server.txt"),true);
String line=null;
while((line=bufIn.readLine())!=null)
{
out.println(line);
}
//创建输出流与Socket绑定
PrintWriter pw = new PrintWriter(s.getOutputStream(),true);
pw.println("上传成功!");
}
catch (IOException e)
{
throw new RuntimeException("操作失败");
}
}
}