技术中心

这里象征着我们的态度和能力

>JavaME中使用Socket通信基础应用
作者:中国IT实验室    来源:中国IT实验室    发布时间:2012-01-01      浏览次数:7145
分享到:
欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入

    在JavaME的网络开发中,我们通常使用的两种网络通信协议是HTTP超文本传输协议和Socket套接字协议,但是由于HTTP是短连接,因此在某些手机中可能会出现不断出现连接网络的提示,因此很多时候我们通过Socket来实现网络连接。在Socket开发中,我们应用的比较多的是手机端与手机端之间的通信,还有手机与服务器的通信。下面分别简单归纳下两种通信的基本实现。

    一、手机端与服务器端的Socket通讯我们通常需要在手机中实现某些功能,而这些功能需要服务器提供服务,因而在手机中需要建立与服务器之间的有效通信。在服务器端我们使用的是ServerSocket来创建服务socket,代码如:ServerSocket server = new ServerSocket(4321);,这样就打开了一个ServerSocket,然后我们使用ServerSocket的accept方法来监听客户端建立的连接,该方法在没有客户端建立请求的时候会一直处于阻塞状态,直到有连接建立则形成Socket对象,服务器通常需要为多客户端同时提供服务,因此一般情况下,我们通过在一个循环中不断监听客户端连接,并为每一个连接创建一个线程提供独立服务。

    ServerSocket server = new ServerSocket(4321);

    while(true) {

    socket = server.accept();

    new ServerThread(socket).start();

    }

    然后在线程中打开socket的通信数据流与客户端进行通讯。

    在JavaME中,与JavaSE的socket使用方式有些不同,在打开Socket连接的时候,使用的不是Socket,而是SocketConnection,并由JavaME中的网络连接类Connector的open方法来建立socket连接,同时,由于open方法返回的是Connection对象,因此需要将其转化为SocketConnection对象。

    SocketConnection sc = (SocketConnection) Connector.open("socket://127.0.0.1:4321"); 这样就打开了一个socket连接对象,然后通过获取该socket的通信流就可以跟服务器之间进行数据交换

    二、手机端与手机端之间的Socket通讯有些开发应用中,实现了手机与手机之间直接的通讯,这就需要让一个手机作为服务端,而另一手机作为客户端来处理,作为客户端的Socket使用方法与以上(一)中相同,不同的主要是作为服务端的手机程序实现。同样的,在JavaME中并不是通过ServerSocket来创建服务Socket的,而是通过ServerSocketConnection来实现,并且一样是通过Connector来打开连接,使用的方法是acceptAndOpen,具体实现如下:

    ServerSocketConnection ssc = (ServerSocketConnection)Connector.open("socket://:1234");

    SocketConnection sc = (SocketConnection)ssc.acceptAndOpen();

    在得到SocketConnection对象之后便可以通过获取相应的socket数据流进行通信。

    DataInputStream dis = sc.openDataOutputStream();

    DataOutputStream dos = sc.openDataInputStream();

    以上为分别对手机与服务器端之间、手机与手机之间通过Socket进行通讯的基本方法。

4000-880-989
(24小时热线)
联系客服
微信公众号

官方公众号

小程序

©2008-2022 CORPORATION ALL Rights Reserved. 昆明奥远科技有限公司版权所有 滇ICP备09003328号-1 滇公网安备 53011102000818号 增值电信业务经营许可证号:滇B2-20110045
昆明那家网络公司好,新媒体运营,网站优化,网络推广,网站建设,网页设计,网站设计,网站推广,云南网站公司,昆明新媒体公司,云南网红主播,昆明SEO公司,昆明网站建设,昆明网络推广,昆明网站优化,昆明网站推广,红河网站建设,大理网络公司,曲靖网络公司,丽江网站设计,昭通网络公司,保山大数据服务,智慧高速建设,智慧校园服务,云南IDC服务商,网络安全测评,等保测评,网站关键词排名优化服务,服务客户尽超2000余家,一切尽在奥远科技,服务电话:13888956730