java如何实现客户端向服务器端传送一个图片的代码,详细一点,最好能有注释,新手求解

java如何实现客户端向服务器端传送一个图片的代码,详细一点,最好能有注释,新手求解,第1张

public class SocketTest extends Thread {

private Socket so;

private DataInputStream in;

public static void main(String[] args) {

SocketTest app = new SocketTest();

appstartup();

}

public void startup() {

try {

// 创建服务端socket对象并指定监听端口

ServerSocket ss = new ServerSocket(9999);

Systemoutprintln("listening");

// 等待客户端连接

so = ssaccept();

Systemoutprintln("connected");

// 开始读取数据

start();

} catch (Exception e) {

eprintStackTrace();

}

}

public void run() {

try {

// 创建socket输入流

in = new DataInputStream(sogetInputStream());

while (true) {

try {

// 定义接收缓冲区(64字节)

byte[] buf = new byte[64];

// 将数据读到接收缓冲区中,并返回实际读到的数据长度

int len = inread(buf, 0, 64);

// 长度为-1说明到达输入流末尾,socket已关闭

if (len < 1) {

Systemoutprintln("closed");

break;

}

Systemoutprintln("(" + len + ")");

} catch (Exception e) {

// 读数据异常

eprintStackTrace();

}

}

} catch (Exception e) {

// 监听异常

eprintStackTrace();

}

}

}

向压缩包里添加文件时直接把服务器上的文件用流读进来就行,不用非把文件放到同一个目录,用程序生成压缩包和用命令行工具是不一样的,不要想当然。 写了个示例程序,你可以参考一下。这个示例不使用临时文件,把 OutputStream os替换成你下载用的输出流就可以实现一边压缩一边下载。注意javautilzip不支持非ascii文件名。想支持中文文件名可以用apache ant或其他的库。

import javaio;

import javautilzipZipEntry;

import javautilzipZipOutputStream;

public class ZipTest {

public static void main( String[] args ) {

try {

writeZip();

} catch ( IOException e ) {

eprintStackTrace();

}

}

private static void writeZip() throws IOException {

String[] files = { "/ws/dir1/file1", "/ws/dir2/file2", "/ws/file3", "/pub/successwav" };

OutputStream os = new BufferedOutputStream( new FileOutputStream( "/ws/archivezip" ) );

ZipOutputStream zos = new ZipOutputStream( os );

byte[] buf = new byte[8192];

int len;

for ( String filename : files ) {

File file = new File( filename );

if ( !fileisFile() ) continue;

ZipEntry ze = new ZipEntry( filegetName() );

zosputNextEntry( ze );

BufferedInputStream bis = new BufferedInputStream( new FileInputStream( file ) );

while ( ( len = bisread( buf ) ) > 0 ) {

zoswrite( buf, 0, len );

}

zoscloseEntry();

}

zosclose();

}

}

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » java如何实现客户端向服务器端传送一个图片的代码,详细一点,最好能有注释,新手求解

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情