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 中的 Socket 编程及其相关知识点。 ### 1. J2ME 的 Socket API J2ME 提供了 `javax.microedition....
在 J2ME 中进行 Socket 编程是实现设备间网络通信的基础,允许应用程序通过 TCP/IP 协议发送和接收数据。下面将详细探讨 J2ME 中的 Socket 编程知识点。 1. **Socket 概念**: - Socket 是网络通信中的一个端点,...
在 J2ME 中,Socket 编程是实现客户端-服务器通信的一种常见方式,它允许应用程序通过网络发送和接收数据。本项目 "j2me socket 服务端与 客户端聊天" 展示了如何利用 Socket 技术创建一个简单的聊天应用,使手机...
### J2ME网络编程大全:深入理解HTTP与Socket通信机制 #### 一、引言 J2ME(Java 2 Micro Edition)是Sun Microsystems为嵌入式设备和移动终端提供的Java平台版本。随着移动互联网的发展,J2ME在网络通信方面的...
8. **网络功能**:J2ME支持联网游戏,通过Socket编程或HTTP协议,实现多玩家对战或游戏数据同步。 9. **文件I/O**:保存游戏进度、配置文件等,通常使用RecordStore API进行本地数据存储。 10. **优化技巧**:为了...
J2ME中的Socket编程是实现网络连接的基础。Socket是TCP/IP协议的一部分,提供了一种在两台计算机之间建立和维护连接的方式。在J2ME中,可以使用`java.net.Socket`类创建一个套接字,与服务器建立连接,并通过输入...
Socket是TCP/IP网络编程的基本组件,它允许两个网络应用程序之间建立连接并交换数据。在J2ME中,`java.net.Socket`类用于实现客户端Socket,而服务器端通常使用`ServerSocket`来监听客户端的连接请求。要建立一个...
《郭克华J2ME实例教程完整版之Socket编程》是一份专为初学者设计的教程,涵盖了J2ME(Java Micro Edition)平台上的Socket编程技术。本教程以WMV视频格式呈现,辅以图文说明,使学习过程更加生动直观。Socket编程是...
4. **网络编程**:阐述如何利用J2ME进行无线通信,包括HTTP连接、Socket编程和数据传输。 5. **数据存储**:介绍如何在有限的移动设备存储空间内进行数据管理,如Record Management System (RMS)。 6. **游戏开发*...
《精通J2ME无线编程》是一本专注于Java Micro Edition(J2ME)技术在无线设备上的应用开发的书籍。J2ME是Java平台的一个子集,设计用于资源有限的嵌入式设备,如手机、PDA和家用电器等。通过J2ME,开发者可以创建在...
### J2ME网络编程深入解析 #### 一、通用连接框架(GCF)基础知识 J2ME,即Java 2 Micro Edition,是Java平台的一个版本,主要用于小型设备如手机、PDA和其他嵌入式系统的应用程序开发。J2ME的网络编程能力是其关键...
Socket编程在J2ME中的应用主要涉及到网络通信的基础知识,特别是Java Micro Edition (J2ME) 平台上的网络编程。J2ME是Java平台的一个子集,主要用于嵌入式设备和移动设备,如手机、PDA等。在这个场景下,Socket编程...
**J2ME Socket Chat MIDlet 开源项目详解** 在移动设备技术领域,Java 2 Micro Edition(J2ME)曾是开发嵌入式系统和移动应用的重要平台。本项目名为"J2ME Socket Chat MIDlet [isometric]",是一个开源的聊天应用...
网络编程在J2ME中也占有重要地位,J2ME提供了HttpConnection和SocketConnection接口,用于实现HTTP和TCP/IP通信。开发者可以利用这些接口实现网络请求,获取远程数据,从而构建各种联网应用,如即时通讯、在线游戏等...
4. **网络编程**:J2ME提供了HttpConnection和Socket连接,使得开发者可以实现网络通信,如下载、上传数据或者进行HTTP请求。 5. **数据存储**:J2ME使用RecordStore系统来存储小量数据,类似于简单的数据库。...
J2ME网络编程是软件开发领域中的一个重要分支,特别是在移动应用开发中,如J2ME版的UCWEB、QQ和飞信等。本文将深入探讨J2ME的网络编程,特别是通用连接框架(Generic Connection Framework,GCF)的基础知识,以及在...
#### 二、J2ME中的Socket编程基础 在 J2ME 中,Socket 编程主要通过 `javax.microedition.io` 包下的类来实现。具体来说,根据使用的协议不同,分为基于 TCP 的 `SocketConnection` 和基于 UDP 的 `...
【J2ME网络编程及其在网络游戏中的应用】 J2ME(Java 2 Micro Edition)是Java 2的一个子集,专为嵌入式设备和移动设备设计,如手机、智能电视和车载信息娱乐系统等。它提供了一个轻量级的运行环境,允许开发者创建...