• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > Android开发简单服务器

Android开发简单服务器

作者:qq_31914027 字体:[增加 减小] 来源:互联网 时间:2017-09-18

qq_31914027通过本文主要向大家介绍了android,android开发,服务器等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

下面是我开发的一个小测试,包含Android端向服务器发送和下载图片的代码片段,希望可以发散更多的内容。
上传代码片段:
import java.io.DataInputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

 

public class Server02 {
public static void main(String[] args) {
try {
ServerSocket server = new ServerSocket(40000);
Socket socket = server.accept();
System.out.println(“acpt = ” + socket.getInetAddress());

        DataInputStream dos = new DataInputStream(socket.getInputStream());   

        int len = dos.available();   
        File file = new File("D:/develope/uc/12.jpg");
        if (!file.exists()) {
            file.createNewFile();
        }
        FileOutputStream fos = new FileOutputStream(file);
        byte[] b = new byte[1024];
        int lenth = 0;
        while ((lenth = dos.read(b)) != -1) {

            System.err.println("lenss-" + lenth);
            fos.write(b, 0, lenth);
            fos.flush();
        }
        System.out.println("len = "+ file.length());  
        byte[] data = new byte[len];    
        dos.read(data);  

        System.out.println("data = "+data);  
        dos.close();    
        socket.close();    
        server.close();    
    } catch (IOException e) {    
        e.printStackTrace();    
    }    
}    

}
Android 端上传片段:
new Thread(new Runnable() {

                @Override
                public void run() {
                    // TODO Auto-generated method stub
                    Socket socket;
                    try {

                        socket = new Socket("192.168.2.203", 40000);
                        DataOutputStream out = new DataOutputStream(socket
                                .getOutputStream());

                        Bitmap bitmap = BitmapFactory.decodeResource(
                                getResources(), R.drawable.ic_launcher);
                        // img.setImageBitmap(bitmap);
                        ByteArrayOutputStream baos = new ByteArrayOutputStream();
                        // 读取图片到ByteArrayOutputStream
                        bitmap.compress(Bitmap.CompressFormat.PNG, 100,
                                baos);
                        byte[] bytes = baos.toByteArray();
                        Log.e("-", "len " + bytes.length);
                        out.write(bytes);
                        out.flush();
                        Log.e("12", "bytes--->" + baos.size());
                        out.close();
                        socket.close();
                    } catch (UnknownHostException e) {
                        e.printStackTrace();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }) {
            }.start();

下载片段java:
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

public class Server01 {
public static void main(String[] args) {
try {
ServerSocket server = new ServerSocket(8820);
System.out.print(“链接。。。。”);
Socket socket = server.accept();
System.out.print(“链接”);
DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
FileInputStream fis = new FileInputStream(“D:/develope/uc/440.png”);
int size = fis.available();

        System.out.println("size = "+size);  
        byte[] data = new byte[size];    
        fis.read(data);    
        dos.writeInt(size);    
        dos.write(data);    

        dos.flush();    
        dos.close();    
        fis.close();    
        socket.close();    
        server.close();    
    } catch (IOException e) {    
        e.printStackTrace();    
    }    
}    

}
android端下载片段:
new Thread(new Runnable() {

                @Override
                public void run() {
                    // TODO Auto-generated method stub
                    Socket socket = null;
                    try {

                        socket = new Socket("192.168.2.203", 8820);

                        DataInputStream dataInput = new DataInputStream(
                                socket.getInputStream());
                        int size = dataInput.readInt();
                        byte[] data = new byte[size];

                        int len = 0;
                        while (len < size) {
                            len += dataInput.read(data, len, size - len);
                        }
                        ByteArrayOutputStream outPut = new ByteArrayOutputStream();
                        bmp = BitmapFactory.decodeByteArray(data, 0,
                                data.length);
                        bmp.compress(CompressFormat.PNG, 100, outPut);

                        if (bmp != null) {
                            Message msg = Message.obtain();
                            msg.obj = bmp;
                            han.sendMessage(msg);
                        }

                        // Bitmap bitmap =
                        // BitmapFactory.decodeStream(dataInput);
                        // myHandler.obtainMessage().sendToTarget();
                    } catch (IOException e) {
                        e.printStackTrace();
                    } finally {
                        try {
                            socket.close();
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                }
            }) {
            }.start();
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Android:手把手教你 实现Activity 与 Fragment 相互通信(含Demo)
  • android自定义圆角背景实现富文本标题展示
  • 自定义收集用户行为统计库 (非常方便 可以自己拓展)
  • Android 6.0 Phone"通话显示"查询流程
  • Android缓存处理
  • 自定义进度条PictureProgressBar——从开发到开源发布全过程
  • 详解Android中的SQLite数据库存储
  • Android设备上获取照片、裁剪图片、压缩图片
  • Android触摸事件分发机制完全解析《一》
  • Android-SQLite和SQLiteOpenHelper

相关文章

  • 2017-05-26从编程的角度理解gradle脚本??Android Studio脚本构建和编程
  • 2017-05-26Android 6.0 开发者对系统权限的使用与练习(Permissions Best Practices)
  • 2017-05-26详解Android微信登录与分享,详解android分享
  • 2017-05-26在Android上Kotlin的单元测试(KAD22),kotlinkad22
  • 2017-05-26Android之使用文件进行IPC,android文件ipc
  • 2017-05-227.2.1 Android XML数据解析
  • 2017-05-26Android 自定义View高级特效,神奇的贝塞尔曲线
  • 2017-05-26Android ExpandableListView相关介绍
  • 2017-05-26看Facebook是如何优化React Native性能,facebookreact
  • 2017-05-228.3.5 Paint API之—— Xfermode与PorterDuff详解(二)

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 安卓--获取应用版本名称与版本号,安卓--版本版本号
    • [android] 手机卫士自定义对话框布局,android卫士
    • android Fragment详细讲述,包括问题隐患
    • Android:支持多选的本地相册
    • linux下神奇的script命令
    • andriod arcgis加载影像TIF,andriodarcgis
    • kvm性能优化
    • 三年0故障总结,提升代码质量的秘诀
    • LVS 内核实现分析(1)
    • Android 急速发布项目到 JitPack,androidjitpack

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有