Java服务端

package com.yqq.socketTest;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.ServerSocket;import java.net.Socket;public class SocketTest {static ServerSocket mServerSocket;static Socket socket;public static void main(String[] args) throws IOException {mServerSocket=new ServerSocket(20000);while(true){ socket=mServerSocket.accept();(new Thread(new ReadThread(socket))).start();}}/** * 读取客户端指令 * @author yqq_coder * */static class ReadThread implements Runnable{private Socket mSocket;public ReadThread(Socket socket){mSocket=socket;}@Overridepublic void run() {System.out.println("读线程开启");InputStream  in=null;OutputStream os=null;ByteArrayOutputStream mByteArrayOutputStream=new ByteArrayOutputStream();try { in=mSocket.getInputStream(); int count=0; byte[] buffer=null; while((count=in.available())==0){ count=in.available(); try {Thread.sleep(1000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}  } buffer=new byte[count]; in.read(buffer); mByteArrayOutputStream.write(buffer); // askForFile System.out.println("读线程开启"+mByteArrayOutputStream.toString()); if(mByteArrayOutputStream.toString().equals("askForFile")){ File file=new File("F://测试.xls");FileInputStream is=null; is=new FileInputStream(file); os=mSocket.getOutputStream(); ByteArrayOutputStream arrayOutputStream=new ByteArrayOutputStream(); byte[] buffer2=new byte[1024]; while(is.read(buffer)!=-1){ arrayOutputStream.write(buffer2); System.out.println("写线程开启socket测试"); } os.write(arrayOutputStream.toByteArray()); os.flush(); socket.shutdownOutput(); System.out.println("读线程开启socket"+socket.isConnected());/* //启动写线程 (new Thread(new WriteThread(socket))).start();*/ }} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{if(in!=null){try {in.close();in=null;} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}if(os!=null){try {os.close();os=null;} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}/** * 向客户端写数据(文件) * @author yqq_coder * *//*static class WriteThread implements Runnable{private Socket mSocket;public WriteThread(Socket socket){mSocket=socket;}@Overridepublic void run() {System.out.println("写线程开启");File file=new File("F://测试.xls");FileInputStream is=null;OutputStream os=null;try { is=new FileInputStream(file); os=mSocket.getOutputStream(); ByteArrayOutputStream arrayOutputStream=new ByteArrayOutputStream(); byte[] buffer=new byte[1024]; while(is.read(buffer)!=-1){ arrayOutputStream.write(buffer); } os.write(arrayOutputStream.toByteArray()); os.flush(); mSocket.shutdownOutput();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{if(os!=null){try {os.close();os=null;} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}*/}}}



android客户端:

package com.yqq.SocketClient;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.InetAddress;import java.net.Socket;import java.net.UnknownHostException;import android.app.Activity;import android.os.Bundle;import android.os.Environment;import android.os.Handler;import android.os.Looper;import android.os.Message;import android.view.View;import android.widget.Toast;public class SocketClient extends Activity {private Socket socket;InputStream inputStream;OutputStream outputStream;Handler mHandler=new Handler(){public void handleMessage(Message msg) {if(msg.what==0x123){Toast.makeText(SocketClient.this,"文件下载完毕", 0).show();}}};@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(com.example.socketclient.R.layout.main);}public void downFile(View v){new Thread(new Runnable() {@Overridepublic void run() {try {socket=new Socket(InetAddress.getByName("172.20.113.1"), 20000);inputStream=socket.getInputStream();outputStream=socket.getOutputStream();outputStream.write("askForFile".getBytes());outputStream.flush();//socket.shutdownOutput();Thread.sleep(3000);byte[] buffer=new byte[1024];File file=new File(getCacheDir(),"测试");FileOutputStream fileOutputStream=new FileOutputStream(file);while(inputStream.read(buffer)!=-1){fileOutputStream.write(buffer);}Looper.prepare();Message message=Message.obtain();message.what=0x123;mHandler.sendMessage(message);Looper.loop();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}}).start();}}

下载地址:http://download.csdn.net/detail/u014600432/8445151

更多相关文章

  1. android邮件发送几种方式
  2. Android中的消息机制
  3. Android(安卓)cts all pass 全攻略
  4. Android(安卓)cts all pass 全攻略
  5. android多框架实现短视频应用、3D手势旋转、banner控件、指南针
  6. 在Android中使用Handler和Thread线程执行后台操作
  7. Android中对Log日志文件的分析
  8. Android(安卓)面试题(2)
  9. android Handler 机制研究学习笔记

随机推荐

  1. 口碑“崩坏”的《和平精英》上线吸金,3天
  2. 装机必备!网页管理Chrome扩展四大神器,让浏
  3. 谷歌也翻车了?全球数亿安卓设备难逃一“劫
  4. 今日沙雕新闻:精英员工离职引公司动荡,老板
  5. 几款堪称神器的图片无损放大缩小工具!
  6. 公益推荐:支付宝“白鲸鱼”,捐旧衣换蚂蚁能
  7. 前谷歌员工爆料:谷歌工程师们是如何合谋“
  8. 灭霸模式开启:百度贴吧2017年前的内容全部
  9. 最权威的免费学术翻译工具,帮你写出专业级
  10. 鲁迅检索系统首日上线!访问量巨大挤崩服务