您的位置:首页 > 理论基础 > 计算机网络

[Java]利用Scoket发送各类文件-实例代码-长连接-极简代码-TCP协议

2017-06-04 19:07 666 查看
关于TCP的知识:

http://blog.csdn.net/shenpibaipao/article/details/70176038


客户端:

import java.io.File;
import java.io.FileInputStream;
import java.io.OutputStream;
import java.net.Socket;

public class FileTransTest {
public static void main(String[] args) throws Exception{
//1.建立Socket
Socket socket=new Socket("127.0.0.1",12121);
//2.文件输入
FileInputStream fr=new FileInputStream(new File("E:/test/t1/a.jpg"));
OutputStream out=socket.getOutputStream();
byte[] buf=new byte[1024];//缓存对象
int len=0;
//3.向socket输入数据
while((len=fr.read(buf))!=-1){
out.write(buf,0,len);
}
socket.shutdownOutput();//不会关闭Socket

if(socket.isClosed())System.out.println("关闭");
else{
System.out.println("未关闭");//控制台输出"未关闭"。这样你就可以继续使用这个长连接 : )
}
}
}

服务器:
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class FileTransTestServer {
public static void main(String[] args) throws Exception{
//1.绑定端口
ServerSocket serverSocket=new ServerSocket(12121);
serverSocket.setSoTimeout(2000);//超时2秒
Socket socket=serverSocket.accept();//套接
//2.获取输入流
InputStream in = socket.getInputStream();
FileOutputStream fw=new FileOutputStream(new File("E:/test/t2/a.jpg"));
byte[] buf=new byte[1024];//缓存
int len=0;
//3.写文件
while((len=in.read(buf))!=-1){
fw.write(buf,0,len);//写入从0起,长度为1024的byte[]
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息