赛迪网 > IT技术 Java > (最新更新)Java基础
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

在J2ME中使用Socket开发联网程序 (1)

发布时间:2006.04.03 10:57     来源:www.51cto.com     作者:

 

在J2ME中基于UDP协议编程一文中介绍了如何使用Datagram和DatagramConnection来开发应用程序,本文将主要讲述在MIDP2.0中使用ServerSocketConnection和SocketConnection来开发联网应用程序。TCP协议是可以保证传输的质量的,这也是他和UDP的一大区别。由于以上谈到的四个类都属于GCF,他们在程序编写方面也非常相似,通常我们在Server端的某个端口监听,当客户端连接服务器的时候,则可以得到一个SocketConnection的实例。通过两端的SocketConnection则可以实现C/S结构的通信了。

首先看一下,ServerSocketConnection类,它的一个非常重要的方法就是acceptAndOpen()方法,这个方法返回一个SocketConnection实例,从而使得客户端和服务器端可以通过socket通信了。典型的代码如下:

// Create the server listening socket for port 1234

ServerSocketConnection scn = (ServerSocketConnection)

Connector.open("socket://:1234");

// Wait for a connection.

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

// Set application specific hints on the socket.

sc.setSocketOption(DELAY, 0);

sc.setSocketOption(LINGER, 0);

sc.setSocketOption(KEEPALIVE, 0);

sc.setSocketOption(RCVBUF, 128);

sc.setSocketOption(SNDBUF, 128);

// Get the input stream of the connection.

DataInputStream is = sc.openDataInputStream();

// Get the output stream of the connection.

DataOutputStream os = sc.openDataOutputStream();

// Read the input data.

String result = is.readUTF();

// Echo the data back to the sender.

os.writeUTF(result);

// Close everything.

is.close();

os.close();

sc.close();

scn.close();

..

SocketConnection的使用也是非常简单,通过Connector的open方法我们可以得到一个SocketConnection的实例。


SocketConnection sc = (SocketConnection)

Connector.open("socket://host.com:79");

sc.setSocketOption(SocketConnection.LINGER, 5);

InputStream is = sc.openInputStream();

OutputStream os = sc.openOutputStream();

os.write("\r\n".getBytes());

int ch = 0;

while(ch != -1) {

 ch = is.read();

}

is.close();

os.close();

sc.close();

其实我们在用socket编写程序的时候无非遵循这样的一种规则:服务器端建立监听端口等待连接,客户端通过open()方法与服务器端建立连接,两端通过建立的socket传输数据,关闭连接。

下图是我在运行WTK中NetworkDemo的时候的截图!代码也一并发表出来。

[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· 在J2ME和WAP中实现电话呼叫功能 (04-03) · 在无线J2ME设备上实现HTTP协议简介 (04-03)
· 在J2ME编程中使用Nokia的中文模拟器 (04-03) · J2ME 中定点库MathFP的使用入门 (04-03)
· 分割字符串以增强J2ME的String能力 (04-03) · 在J2ME中用Timer和TimerTask实现多线程 (04-03)
· 在WEB服务器中使用OTA来发布J2ME程序 (04-03) · 用J2ME在移动终端设备上实现动画效果 (04-03)
· J2ME 使用3D编程的第一个3DJava程序 (04-03) · J2ME编程中三种低级用户界面处理技术 (04-03)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
· 北京新规不能霸王硬上弓 网店牌照缓期执行
· 软件外包之变的新台阶: 提高全球交付能力
· ERP案例分析 SaaS带来冲击 IT服务商面临挑战
· 通方期货CRM解决方案 房地产行业CRM解决方案
  IT博客 ·曾剑秋·项立刚·Java学习·网管
  IT技术论坛 ·开发·网管·安全·数据库·系统