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 出现的问题及解决办法

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

j2me随机数问题

  • 2008-08-04 20:43
  • 506B
  • 下载

J2ME实现精确秒表计时

import javax.microedition.lcdui.Canvas; import javax.microedition.lcdui.Font; import javax.microedit...

j2me 常见 问题 集

  • 2010-05-24 20:05
  • 653KB
  • 下载

j2me,Http,l联网

1) .由于无线设备所能支持的网络协议非常有限,仅限于HTTP,Socket,UDP等几种协议,不同的厂家可能还支持其他网络协议,但是,MIDP 1.0规范规定,HTTP协议是必须实现的协议,而其他协...

j2me中文教程

  • 2016-03-21 09:22
  • 4.50MB
  • 下载

J2ME中文教程

  • 2013-05-05 20:15
  • 4.50MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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