java server接收文件后返回字符串给client
客户端:
/* 通讯
需求:传送任意文件
tcp传输要定义2个端点,客户端和服务端
步骤
1.定义服务, 服务器ip和接收端口
2.读取客户端已有的图片文件
3.使用socket输出流将数据发给服务端
4.读取服务端的反馈信息
5.关闭资源
注意:
1.在while循环中的read方法最后读到文件结束标记-1后循环退出了
而没有将该标记写入socket流中,那么服务端接收到的数据是不完整的,而且停不下来
用shutdownOutput方法告诉服务端文件到了末尾结束发送了
[示例]:传送任意文件 (客户端)
*/
import java.net.*;
import java.io.*;
class Demo
{
public static void main(String[] args) throws Exception
{
new FileClient("c:\\FoxitReader_CHS.rar"); //启动客户端,准备发送指定文件
}
}
class FileClient //客户端
{
FileClient(String fileStr) throws Exception
{
s.op("客户端启动....");
File file = new File(fileStr); //关联一个文件c:\\FoxitReader_CHS.rar
if(file.isFile()) //是一个标准文件吗?
{
client(file); //启动连接
}
else
{
s.op("要发送的文件 "+fileStr+" 不是一个标准文件,请正确指定");
}
}
public void client(File file)throws Exception
{
Socket sock= new Socket("192.168.1.3",10007); //指定服务端地址和端口
FileInputStream fis = new FileInputStream(file); //读取本地文件
OutputStream sockOut = sock.getOutputStream(); //定义socket输出流
//先发送文件名.让服务端知道
String fileName = file.getNam