用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - java代码库

java socket发送文件 服务器端

2015-02-11 作者: java源代码大全举报

[java]代码库

package bookPromotation;

import java.io.*;
import java.net.*;

public class Server {

	/**
	 * @param args
	 */
	static int index = 0;
	private static ServerSocket ss = null;
	private static Socket s = null;

	private static File f = null;
	private static RandomAccessFile fw = null;

	public static void main(String[] args) {
		Server sk = new Server();
		sk.initServer(8000);
	}

	/**
	 * 初始化服务器端
	 * 
	 * @param port
	 *            服务器端要使用的端口
	 */
	public void initServer(int port) {
		try {
			ss = new ServerSocket(port);
			s = ss.accept();
			Thread t = new Thread(new HandleClient(s));
			t.start();
		} catch (IOException e) {

			e.printStackTrace();
		}
	}

	// 从SocketClient读取文件

	class HandleClient implements Runnable {

		Socket sock;

		HandleClient(Socket s) {
			sock = s;
		}

		@Override
		public void run() {
			// TODO Auto-generated method stub
			byte[] b = new byte[1024];

			InputStream in=null;
			DataInputStream din = null;
			
			try {
				// 定义输入流,s.getInputStream();

				in = s.getInputStream();
				 din= new DataInputStream(new BufferedInputStream(in));
				// 创建要保存的文件
				f = new File("copy" + index + ".jpg");
				index++;
				fw = new RandomAccessFile(f, "rw");

				int num = din.read(b);
				while (num != -1) {
					// 向文件中写入0~num个字节
					fw.write(b, 0, num);
					// 跳过num个字节再次写入文件
					fw.skipBytes(num);
					// 读取num个字节
					num = din.read(b);
				}
				// 关闭输入,输出流
				din.close();
				fw.close();
				System.out.println("receive file successfully");
			} catch (IOException e) {

				e.printStackTrace();
			} 
		}
	}

}
//源代码片段来自云代码http://yuncode.net
			


网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...