[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[]
}
}
}
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[]
}
}
}
相关文章推荐
- 利用java在服务器和客服端建立连接,进行通讯(代码实例)
- Java利用TCP协议发送文件(四)--完整源代码
- Java利用TCP协议发送文件(二)--数据包设计
- Java利用socket连接到一台主机并向主机发送文件
- Java利用TCP协议发送文件(三)--客户端设计
- 利用java在服务器和客服端建立连接,进行通讯(代码实例)
- Java利用socket连接到一台主机并向主机发送文件
- java 利用TCP协议从客户端向服务器端发送文件.(网络编程)
- Java利用TCP协议发送文件(一)--服务器端
- jsp连接数据库大全(各类数据库驱动的连接)Java连接各种数据库的实例
- java发送邮件及邮件附件代码实例
- JAVA连接FTP服务器,并上传/下载文件代码
- php下连接ftp实现文件的上传、下载、删除文件实例代码
- 数据库操作:java连接MYSQL实例代码演示
- java中使用scoket模拟http post请求发送图片或文件
- 数据库操作:java连接ORACLE实例代码演示
- 利用php调用so库文件中的代码和编写so简单实例
- 数据库操作:java连接MSSQL实例代码演示
- java中使用scoket模拟http post请求发送图片或文件
- 数据库操作:java连接MYSQL实例代码演示