JavaME中操纵Socket通信底子操纵[Java编程]
本文“JavaME中操纵Socket通信底子操纵[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
在JavaME的网络开辟中,我们普通利用的两种网络通信协议是HTTP超文本传输协议和Socket套接字协议,但是由于HTTP是短衔接,因此在某些手机中大概会呈现不断呈现衔接网络的提醒,因此很多时刻我们通过Socket来实现网络衔接.在Socket开辟中,我们利用的对比多的是手机端与手机端之间的通信,还有手机与服务器的通信.下面辨别简单归纳下两种通信的基本实现.
1、手机端与服务器端的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的通信流便可以跟服务器之间举行数据交换.
2、手机端与手机端之间的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举行通讯的基本办法.
以上是“JavaME中操纵Socket通信底子操纵[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |