Socket是套接字,它是基于TCP协议的传输。
在J2ME开发Socket的流程:
1. 服务器监听某个端口
2. 客户端连接服务器的某个端口
3.通过Socket通讯
在J2ME开发包javax.microedition.io中包含了 HttpConnection, HttpsConnection, SocketConnection,ServerSocketConnection和UDPDatagramConnection类,其中输入流和输出流包含在java.io包中,
这里主要用到的是SocketConnection和ServerSocketConnection这两个类;
代码如下
服务器端:
try {
//监听1234端口
ServerSocketConnection ssc = (ServerSocketConnection) Connector.open("socket://1234");
SocketConnection sc = (SocketConnection) ssc.acceptAndOpen(); //等待客户连接,如果客户没有连接的话,这里程序就会在这阻塞
} catch (IOException e) {
e.printStackTrace();
}
客户端
try {
//连接服务器1234端口
SocketConnection sc = (SocketConnection) Connector.open("socket:127.0.0.1//1234");
} catch (IOException e) {
e.printStackTrace();
}
通过以上代码这样就能客户端与服务器端通信了,其中服务器端的SocketConnection 对象sc与客服端的SocketConnection 对象sc 是同一个对象。SocketConnection几个常用的方法有:
getAddress();得到客户端地址
setSocketOption:设置一些参数,一般可以用默认
openDataInputStream / openInputStream; 打开输入流
openDataOutputStream / openOutputStream; 打开输出流
例当客服器端向服务器端发送一个字符串,同样在服务器端能够打印出来,代码如下:
服务器端
package com.easymorse;
import java.io.DataInputStream;
import java.io.IOException;
import javax.microedition.io.Connector;
import javax.microedition.io.ServerSocketConnection;
import javax.microedition.io.SocketConnection;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
public class ServerMIdlet extends MIDlet {
public ServerMIdlet() {
}
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
}
protected void pauseApp() {
}
protected void startApp() throws MIDletStateChangeException {
try {
//监听1234端口
ServerSocketConnection ssc = (ServerSocketConnection) Connector.open("socket://1234");
SocketConnection sc = (SocketConnection) ssc.acceptAndOpen(); //等待客户连接,如果客户没有连接的话,这里程序就会在这阻塞
DataInputStream dis = (DataInputStream) sc.openDataInputStream();
String msg = dis.readUTF();
System.out.println(msg);
} catch (IOException e) {
e.printStackTrace();
}
}
}
客户端:
package com.easymorse;
import java.io.DataOutputStream;
import java.io.IOException;
import javax.microedition.io.Connector;
import javax.microedition.io.ServerSocketConnection;
import javax.microedition.io.SocketConnection;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
public class ClientSocketMIDlet extends MIDlet {
public ClientSocketMIDlet() {
}
protected void destroyApp(boolean unconditional)
throws MIDletStateChangeException {
}
protected void pauseApp() {
}
protected void startApp() throws MIDletStateChangeException {
try {
//连接服务器1234端口
SocketConnection sc = (SocketConnection) Connector.open("socket:127.0.0.1//1234");
DataOutputStream dos = sc.openDataOutputStream();
dos.writeUTF("你好服务器");
} catch (IOException e) {
e.printStackTrace();
}
}
}
分享到:
相关推荐
简单实通信功能,但是真机很少支持,希望和大家多多交流
J2ME的SOCKET编程技术学习的代码
J2ME网络编程是软件开发领域中的一个重要分支,特别是在移动应用开发中,如J2ME版的UCWEB、QQ和飞信等。本文将深入探讨J2ME的网络编程,特别是通用连接框架(Generic Connection Framework,GCF)的基础知识,以及在...
【J2ME网络编程及其在网络游戏中的应用】 J2ME(Java 2 Micro Edition)是Java 2的一个子集,专为嵌入式设备和移动设备设计,如手机、智能电视和车载信息娱乐系统等。它提供了一个轻量级的运行环境,允许开发者创建...
郭克华J2ME实例教程完整版 WMV格式适合新手 图文并茂
这是本人制作的一个演示服务器与客户端聊天的实例,是用MIDP技术来做的。读者下载后,只要稍加修改,就可以实现类似于QQ中的群聊功能。
介绍了J2ME中使用Socket进行网络连接
一个基于J2ME的手机编程方面的资料,讲解比较详细,适合J2ME学习者学习!
J2ME网络编程,通过socket,两个人进行聊天
程序采用sslsocket联网技术实现,采用自己创建的数字证书,导入wtk中实现联网安全信息传输。 共同探讨:jack_sj@139.com
J2ME MIDP 手机编程实例集源码,包括了UDP Socket方面的编程技巧,还有一更简单的基础实例,主要都是一些前两年的手机游戏编程资料,现在放上来分享给大家,对于打基础还是有用的。
入门 01体系介绍和环境配置 其他 25J2ME代码优化 ...18网络编程1:Socket编程 19案例4:聊天室开发 20网络编程2:UDP编程 21网络编程3:HTTP编程 RMS开发 15RMS编程1:基础知识 16RMS编程2:高级知识 17案例3
18. 网络编程1Socket编程 19. 案例4聊天室开发 20. 网络编程2UDP编程 21. 网络编程3HTTP编程 22. GameAPI 1游戏画布,图层和游戏精灵 23.GameAPI 2Sprite碰撞检测和动画 24. GameAPI 3TiledLayer和图层管理 25. J2ME...
一款简单的基于j2me的手机聊天软件,采用socket网络编程技术实现两个客户端之间的通信,程序中包含一个服务器端程序和一个客户端程序。
nokia提供的移动开发中端到端的例子
联网对战涉及到Socket编程,客户端和服务器通过TCP/IP协议进行通信。客户端负责用户界面展示,接收用户操作并发送至服务器,同时处理来自服务器的数据。服务器端则维护在线用户信息,存储每个对战用户的棋盘状态,...
GCF是一套专为J2ME设计的I/O和网络互联API,它简化了在移动设备上进行网络编程的复杂性。 - **GCF组成**:GCF包括`Connector`工厂类、`ConnectionNotFoundException`异常以及一系列接口,如`Connection`、`...
《J2ME平台手机游戏开发》是一门针对游戏软件专业的实践性强的课程,旨在通过学习Java编程语言,深入理解J2ME(Java 2 Micro Edition)的特性,特别是MIDP(Mobile Information Device Profile)1.0和CLDC...
18. 网络编程1Socket编程 19. 案例4聊天室开发 20. 网络编程2UDP编程 21. 网络编程3HTTP编程 22. GameAPI 1游戏画布,图层和游戏精灵 23.GameAPI 2Sprite碰撞检测和动画 24. GameAPI 3TiledLayer和图层管理 25. J2ME...
18. 网络编程1Socket编程 19. 案例4聊天室开发 20. 网络编程2UDP编程 21. 网络编程3HTTP编程 22. GameAPI 1游戏画布,图层和游戏精灵 23.GameAPI 2Sprite碰撞检测和动画 24. GameAPI 3TiledLayer和图层管理 25. J2ME...