J2ME中文传递问题

原创 2017年01月03日 02:30:58
环境:客户端: win98、 jdk1.3.1、 j2me wireless toolkit 1.0.1
      服务器端:Linux7.1 有中文支持
目的:服务器端c程序接收客户端java程序传递来的中文并显示出来;
说明:当客户端用纯java应用程序、服务器端c程序不变能正常显示中文。 
      
服务器端c程序:
#include <sys/socket.h>
#include <sys/types.h>
#include <arpa/inet.h>
#include <sys/time.h>
#include <string.h>
#include <signal.h>
#include <stdio.h>



#define BUFLEN 4 /*缓冲区尺寸*/
#define SOCKADDR struct sockaddr
#define PORT 9696   /*服务器使用的端口号 */ 

int main(void)           /*主函数*/
{
int sockfd,socklen,newfd;
char buffer[BUFLEN];

struct sockaddr_in srv_addr,cli_addr;

fd_set infds;
int maxfd,n;
struct timeval tval;

    if ((sockfd=socket(AF_INET,SOCK_STREAM,0))<0)
{
printf("socket error!\n");
exit(1);
}
memset(&srv_addr,0,sizeof(struct sockaddr_in));
srv_addr.sin_family=AF_INET;
srv_addr.sin_port=htons(PORT);
srv_addr.sin_addr.s_addr=htonl(INADDR_ANY);
if(bind(sockfd,(SOCKADDR *)(&srv_addr),sizeof(struct sockaddr_in))<0)
{      /*绑定*/
printf("bind error!\n");
close(sockfd);
exit(2);
}
listen(sockfd,MAX);
socklen=sizeof(SOCKADDR);
    newfd=accept(sockfd,(SOCKADDR *)(&cli_addr),&socklen);
printf("accept success\n");
while((n=read(newfd,buffer,BUFLEN))>0)  /*读取客户发送来的信息*/
{
printf("buffer=%s\n",buffer);

}

close(newfd);

}

客户端java程序:

package Test;

import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
import javax.microedition.io.*;
import java.io.*;

public class test1 extends MIDlet implements CommandListener {

    
static final String temp="你好";
private String serverUrl = "socket://61.188.177.33:4445";
StreamConnection c= null;
    DataOutputStream output;
    public test1() {
        
    }

    
    public void startApp() {
    try{
      System.out.println("begin");
      c=(StreamConnection)Connector.open(serverUrl);
      System.out.println("Created Socket\n");
      output=new DataOutputStream(c.openDataOutputStream());
      System.out.println("Created output stream");
      byte bufout[]=new byte[40];
      bufout=temp.getBytes() ;
      output.write(bufout,0,bufout.length  );
      //output.writeUTF(temp  );
      //output.writeChars(temp  );
      
      System.out.println("send output:"+bufout.length);
      
      c.close() ;
    }
    catch(IOException e){
      e.printStackTrace() ;
      
    }
    }

    public void commandAction(Command c, Displayable s) {
    
    }

}












J2ME中文编码问题

中文 J2ME中文编码问题 1. 简介 本文介绍JavaME中文编码的相关问题,这个问题一度是互联网上的开发者们讨论的热门话题。本文整理和综合了网上众多相关内容,尽可能的为开发者提供一个全面...

J2ME 发送彩信问题,请个位高手帮忙,长时间在线等待

开发环境介绍: eclipse + wtk  问题: 将程序按照到nokia 5233的手机上后,通过程序发送彩信,彩信内容包括,图片和一段文字,发送到sony 爱立信的手机上。 1....

本来刚学j2me手机编程,遇到一个问题,可能比较浅,请不吝赐教!

我用的书是人民邮电出版社的《j2me手机游戏编程入门》,我用J2ME Wireless Toolkit 2.0_01来开发运行。当我在尝试这本书的一个例子的时候,遇到你个问题,心中也有困惑,请各位指教...

j2me 出现的问题及解决办法

选择“run main project via OTA”时,模拟器在安装时出现错误,j2mesdk 出现以下错误提示: 这是第二次碰到这个问题了 Jad URL for OTA ex...

j2me随机数问题

  • 2008年08月04日 20:43
  • 506B
  • 下载

java系列之J2ME的移动支付系统的设计与实现

移动支付是移动电子商务中的最重要的部分之一。安全性、私密性、易用性是移动支付的最重要的几个问题。目前有许多不同种类的技术能够实现移动支付,其中J2ME凭借其多种显著的优势成为了佼佼者。移动支...
  • qqxinxi
  • qqxinxi
  • 2011年02月20日 09:46
  • 668

解决J2ME开发中的连续按键问题

  • 2009年07月04日 13:48
  • 31KB
  • 下载

j2me中文教程

  • 2016年03月21日 09:22
  • 4.5MB
  • 下载

原创开源javascript解释器 RockScript,可以在J2ME手机上流畅运行!

源代码和测试程序在这里:http://code.google.com/p/javascript4me/ 已在Nokia低端S40手机中测试过。 测试程序是一个标准J2ME应用,打开程序后即可从ja...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:J2ME中文传递问题
举报原因:
原因补充:

(最多只允许输入30个字)