0 0

弟刚接触J2ME想做个如下功能:应用MTK手机将照片通过GRPS 传到服务器上遇到的问题 20

现在遇到的问题是模拟器测试好用,可是拷到MTK手机上测试的时候。图片一致被占用。经过调试发现时在写文件的时候产生了阻塞。请各位帮忙看下。
客户端代码:

public class SaveFileClass extends Thread {
Displayable disp = null;
Display ds = null;
Displayable successDisp = null;
byte[] bimg = null;
OutputStream dos = null;
SocketConnection sc;
String ip="";
String port="";

public SaveFileClass(Display dis, Displayable backScreen,
   Displayable successScreen, byte[] b,String ip,String port) {
  ds = dis;
  disp = backScreen;
  successDisp = successScreen;
  bimg = b;
  this.ip=ip;
  this.port=port;
}

public void run() {
  try {
   String url="socket://"+ip+":"+port;
   System.out.println("url"+url);
   sc = (SocketConnection) Connector.open(url);
   dos = sc.openOutputStream();
   dos.write(bimg);
   dos.flush();

   dos.close();
   sc.close();
  
   Alert altSuccess = new Alert("提示", "          发送成功!", null,AlertType.INFO);
   altSuccess.setTimeout(2000);
   ds.setCurrent(altSuccess, successDisp);

  } catch (IOException ioe) {
   Alert altSuccess = new Alert("提示", "          发送失败!", null,AlertType.ERROR);
   altSuccess.setTimeout(2000);
   ds.setCurrent(altSuccess, successDisp);
   try {
    dos.close();
    sc.close();
   } catch (IOException e) {
    e.printStackTrace();
   }
  
  }
}
}
服务器端

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.UUID;



public class NewMain {

public static void main(String[] args) {
  ServerSocket server = null;
  Socket socket = null;
  try {
   server = new ServerSocket(12345);
   socket = server.accept();
   new ReceiveImage(server, socket).start();

  } catch (IOException e) {
   try {
    e.printStackTrace();
    server.close();
    socket.close();
   } catch (IOException e1) {
    socket=null;
    server=null;
   }
  
  }
}


}

class ReceiveImage extends Thread {
Socket socket;
ServerSocket server;

public ReceiveImage(ServerSocket server, Socket socket) {
  this.server = server;
  this.socket = socket;
}

public void run() {
   try {
     try {
     Thread.sleep(10000);
    } catch (InterruptedException e1) {
     // TODO Auto-generated catch block
     e1.printStackTrace();
    }
    System.out.println("客户端已经连接上"+socket);
    InputStream is = socket.getInputStream();
    String name = UUID.randomUUID().toString();
    System.out.println(name);
    FileOutputStream os = new FileOutputStream("c://" + name+ ".jpg");

    byte[] buffer = new byte[4096];
    int size = 0;
    do{
   
     size=is.read(buffer);
    if(size!=-1){
      os.write(buffer, 0, size);
     }
    //此处用MTK手机测试时候 在循环内处于阻塞(等待)状态。
    }while(size!=-1);

    os.flush();
    os.close();
    is.close();
   } catch (IOException e) {
    e.printStackTrace();
   }
  }

}
2011年2月11日 23:44
目前还没有答案

相关推荐

    MTK系统下的J2ME运行平台设计

    3. **系统集成**:将J2ME运行环境无缝集成到MTK系统中,使其能够作为一个完整的系统组件运作。 4. **功能模块开发**:设计和实现必要的功能模块,如应用程序管理器、用户界面引擎等,以支持J2ME应用程序的下载、安装...

    jal.rar_ mtk j2me_j2me_j2me mtk_mtk

    开发者通常会将J2ME应用打包成jal文件,然后通过MTK平台的工具将其部署到目标设备上。文件名“jal”可能代表一个特定的J2ME应用或者库,它的具体功能和用途需要解压后查看源代码或相关文档才能明确。 在开发过程中...

    J2ME手机应用项目开发实践

    在J2ME开发中,你将接触到以下几个关键概念: 1. **MIDlet**:这是J2ME中的应用程序单位,类似于Java SE中的JAR文件。一个MIDlet集合可以包含多个MIDlets和资源文件。 2. **用户界面**:J2ME使用WTK(Wireless ...

    基于J2ME的手机应用软件的研究

    【标题】: "基于J2ME的手机应用软件的研究" 【描述】: 本文主要探讨了J2ME技术在手机应用软件开发中的应用,作为一篇学年论文,它深入研究了手机软件的发展现状、趋势以及J2ME的技术实现。 【标签】: "手机应用...

    J2ME手机应用项目开发实践 源代码

    总的来说,这个J2ME手机应用项目开发实践的源代码是一个宝贵的教育资源,它可以帮助你学习J2ME编程基础,理解移动设备上的软件开发挑战,并提高你在实际项目中的解决问题的能力。通过研究和修改源代码,你将有机会...

    J2ME手机电话本

    本文将深入探讨如何在NetBeans集成开发环境中利用J2ME实现一个手机电话本功能。 首先,我们需要了解J2ME的基础架构。J2ME由配置(Configurations)和框架(Profiles)组成。配置定义了运行时环境的基本特性,而框架...

    j2me手机浏览器/j2me手机浏览器

    总的来说,“j2me手机浏览器”是J2ME平台上的一个关键应用,它在功能手机时代为移动用户提供了接入互联网的能力。随着智能手机和更强大的移动操作系统的发展,J2ME浏览器逐渐被取代,但它们在移动互联网发展的早期...

    J2ME相关技术,介绍J2ME的问题处理

    3. J2ME游戏移植人员:将游戏从一个平台迁移到另一个平台,需要了解平台差异和技术参数。 五、J2ME程序设计原则 1. 面向对象编程:提高代码可维护性和扩展性。 2. MVC模式:分离模型、视图和控制器,便于管理和扩展...

    J2ME手机计算器触屏按键功能

    在本文中,我们将深入探讨如何在Java平台上,特别是在J2ME(Java Micro Edition)环境中,实现一个具有触屏按键功能的手机计算器应用。这个计算器应用允许用户通过触屏操作进行数学计算,提供了一种便捷的方式来处理...

    基于J2ME平台的手机应用程序研究与开发

    综上所述,基于J2ME平台的手机应用程序开发涉及了从基础的J2ME架构理解,到具体的MIDP组件使用,再到开发工具的选择和应用发布流程。开发者需要掌握这些核心概念和技术,才能有效创建出能在多种手机平台上运行的高效...

    j2me手机高级编程

    《J2ME手机高级编程》涉及的是Java 2 Micro Edition(J2ME)在移动设备上的高级应用开发,尤其关注无线通信、游戏开发、电子地图浏览、播放器实现、持久化存储、移动商务应用以及XML模型的应用。这些主题涵盖了移动...

    j2me手机基于服务器的网络象棋游戏源代码

    【J2ME手机基于服务器的网络象棋游戏源代码】是一种专门为移动设备设计的网络棋类游戏实现,它利用Java 2 Micro Edition (J2ME) 技术,让玩家能够在手机上与其他在线用户对战。J2ME是Java平台的一个轻量级版本,主要...

    j2me 手机蓝牙聊天系统

    【J2ME手机蓝牙聊天系统】是一个利用Java 2 Micro Edition (J2ME) 技术实现的移动设备间通信的应用。J2ME是Java平台的一个子集,专门设计用于资源有限的嵌入式设备,如手机和PDA。在这个系统中,用户可以通过手机的...

    J2ME 手机程序开发

    J2ME在手机程序开发中的应用广泛,因为它允许开发者创建跨平台的应用,可以在多种不同类型的移动设备上运行。 **第二章:高级界面开发** 在J2ME中,高级界面开发涉及到创建用户友好的交互体验。这一章节可能涵盖了...

    j2me手机游戏,功能齐全

    在这个特定的上下文中,我们讨论的是基于J2ME开发的手机游戏,这些游戏在功能手机时代非常流行,提供了各种各样的娱乐选择。 J2ME由两部分组成:K Virtual Machine (KVM) 和 Connected Limited Device ...

    J2ME手机游戏编程入门

    J2ME,全称Java 2 Micro Edition,是Java平台的一个子集,专门用于资源有限的设备,如早期的智能手机和功能手机。J2ME为移动设备提供了丰富的应用程序开发环境,尤其是在手机游戏领域,它曾经是开发手机游戏的主流...

    J2ME编写的一个手机存储功能.rar

    这个压缩包文件“J2ME编写的一个手机存储功能.rar”显然是一个关于如何在J2ME平台上实现手机存储功能的示例项目。下面将详细探讨J2ME的存储机制以及可能涉及的关键知识点。 1. **J2ME存储系统概述**: - J2ME设备...

    手机J2ME程序编写教程

    **手机J2ME程序编写教程** Java Micro Edition(J2ME)是Java平台的一个子集,主要用于嵌入式...通过阅读"手机程序编写.pdf"和参考"说明.txt",你将能全面掌握J2ME编程的基础知识,进而创建出属于自己的手机应用程序。

    J2ME手机应用项目开发实践.iso

    J2ME手机应用项目开发实践.iso J2ME手机应用项目开发实践.iso

    J2ME开发 J2ME开发 J2ME开发

    J2ME,全称Java 2 Micro Edition,是Java平台的一个子集,主要用于嵌入式设备和移动设备的开发,如手机、智能电表、家庭自动化设备等。它提供了跨平台的开发环境,使得开发者可以编写一次代码,到处运行。J2ME由两大...

Global site tag (gtag.js) - Google Analytics