关闭

学习Java Web开发[1]可上传图片的客户端开发

标签: Java网络编程多线程服务器
402人阅读 评论(0) 收藏 举报

         这是我在CSDN的第一篇博文,马上研一就结束了,换句话说就是我已经毕业一年多了,回想起来或许自己上研就是个错误的选择,到现在还是没有学习到什么东西,现在下决心想学点东西,就先从Java开始,作为计算机的学生精通一门编程语言是非常重要的。希望以后每天能有8小时的有效学习时间。

       现在在学的是Java Web开发的客户端服务端多线程编程。当编完没有多线程的可上传图片的客户端—服务器后,会发现每次只能有一个人使用上传图片,而其余人必须等待,而且有时候因为等待时间过长而被放弃得不到服务器的服务,这是因为Socket是阻塞式的,不使用多线程时当有一个人正在使用Socket其他人必须等待Socket服务完成才能有服务。为了可以实现多人同时上传,我们使用多线程同时编程。

      客户端代码:

	public static void main(String[] args) throws UnknownHostException, IOException {
		
		//1.创建客户端socket
		Socket s = new Socket("192.168.1.102",10005);
		//2.读取客户端要上传的文件
		FileInputStream fis = new FileInputStream("e:\\test.png");
		//3.获取socket输出流,将读到的图片数据发送给服务器
		OutputStream out = s.getOutputStream();
		//4.频繁读取。
		byte[] buf = new byte[1024];
		int len = 0;
		while((len = fis.read())!=-1){
			out.write(buf,0,len);
		}
		//5.告诉服务器图片已经发送完毕。让服务端停止读取。
		 s.shutdownOutput();
		//6.读取服务端发回的内容。
		InputStream in = s.getInputStream();
		byte[] bufIn = new byte[1024];
		int lenIn = in.read(bufIn);
		String text = new String(bufIn,0,lenIn);
		System.out.println(text);
		
		fis.close();
		s.close();
	}
}


 

1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:39666次
    • 积分:955
    • 等级:
    • 排名:千里之外
    • 原创:54篇
    • 转载:0篇
    • 译文:0篇
    • 评论:4条