快速业务通道

J2ME网络编程两种方法的分析 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19
,其实跟一般的网页请求没有多大区别,很简单吧!!

上面的Socket客户端连接程序就应该算是完工了,下面是搭建服务器端对客户端的连接进行响应。建立服务器端程序,只需要有以下代码即可:

J2ME网络编程两种方法的分析(2)

时间:2011-02-10

SocketConnection

下面还是从实例入手讲一下J2me的Socket编程。

程序首先打开以IP地址为192.168.0.1:6666的Socket连接,如果连接失败则抛出异常,程序结束。如果Socket连接成功,则继续。

public boolean SocketConn(String s) throws IOException{   // =============================================================   // s是Socket连接字符串   // 这里的例子是发送用的用户名和密码到服务器端进行用户验证   // 比如 String s = "socket://192.168.0.1:6666"   // =============================================================   private StreamConnection conServer;   private String strServerAddr;   private boolean bConnected;   conServer = null;   strServerAddr = s; // 连接地址   bConnected = false; // 连接状态   try   {    conServer = (StreamConnection)Connector.open(strServerAddr);   }   catch(Exception exception)   {    System.out.println("Connect server error");    bConnected = false;    return false;   }   bConnected = true;   System.out.println("connect ok!");   return true; }

上面的Socket客户端连接程序就应该算是完工了,下面是搭建服务器端对客户端的连接进行响应。建立服务器端程序,只需要有以下代码即可:

.......... try{   // 建立端口为6666的socket服务器   ServerSocketConnection SocketSer;   SocketSer = (ServerSocketConnection)Connector.open("socket://:6666"); // 等待客户端连接   SocketConnection sc;   // 如有连接,则新增一个线程对连接进行处理   sc = (SocketConnection)SocketSer.acceptAndOpen();   ..........   while(true){    // 对sc的InputStream和OutPutStream进行处理   } } ..........

J2ME网络编程两种方法的分析(3)

时间:2011-02-10

在这里需要说明一下我的看法,手机通过Socket连接上服务器后,由于我用的是中国移动的号码,所以跑的是GPRS通道,我所建立的服务器连接所获得的客户端IP只是一个虚拟IP,而这个IP估计是以用户当前最近的移动机站的编码通过一些变化而产生的,所以当用户不停的移动的时候,IP也许会发生变化(这里我就不太清楚了),有兴趣的可以去看看“移动虚拟IP技术”相关的报道。本来我以前的想法是用户连接到服务器后只要IP不变就可以实现服务器向客户端广播数据,但是这个IP并非是长连接,服务器在广播数据的时候也许会有很大部分的客户端的IP会出现变化,所以最后还是采用由客户端主动发送信息的形式。感觉有点扯远了,还是回到正题吧。

客户端在建立Socket连接成功后,即可向服务器发送信息,以下是发送信息模块

protected boolean sendData(byte abyte0[])//自己替换[] {   System.out.println("send :" + bConnected);   // 判断连接情况   if(!bConnected)    return false;   OutputStream outputstream = null;   try   {    outputstream = conServer.openOutputStream();    // 写信息到outputstream中    outputstream.write(abyte0);    // 我的理解是强制送出所有已经写了的信息    outputstream.flush();   

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号