`
wangxc
  • 浏览: 213020 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

J2ME Socket编程

    博客分类:
  • J2ME
阅读更多
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 编程是实现设备间通信的重要机制,允许应用程序通过网络发送和接收数据。本文将深入探讨 J2ME 中的 Socket 编程及其相关知识点。 ### 1. J2ME 的 Socket API J2ME 提供了 `javax.microedition....

    J2ME的Socket编程

    在 J2ME 中进行 Socket 编程是实现设备间网络通信的基础,允许应用程序通过 TCP/IP 协议发送和接收数据。下面将详细探讨 J2ME 中的 Socket 编程知识点。 1. **Socket 概念**: - Socket 是网络通信中的一个端点,...

    j2me socket 服务端与 客户端聊天

    在 J2ME 中,Socket 编程是实现客户端-服务器通信的一种常见方式,它允许应用程序通过网络发送和接收数据。本项目 "j2me socket 服务端与 客户端聊天" 展示了如何利用 Socket 技术创建一个简单的聊天应用,使手机...

    j2me网络编程大全

    ### J2ME网络编程大全:深入理解HTTP与Socket通信机制 #### 一、引言 J2ME(Java 2 Micro Edition)是Sun Microsystems为嵌入式设备和移动终端提供的Java平台版本。随着移动互联网的发展,J2ME在网络通信方面的...

    J2ME游戏编程

    8. **网络功能**:J2ME支持联网游戏,通过Socket编程或HTTP协议,实现多玩家对战或游戏数据同步。 9. **文件I/O**:保存游戏进度、配置文件等,通常使用RecordStore API进行本地数据存储。 10. **优化技巧**:为了...

    Http.rar_C http_http请求_j2me socket cmnet_s40 cmnet socket_visual

    J2ME中的Socket编程是实现网络连接的基础。Socket是TCP/IP协议的一部分,提供了一种在两台计算机之间建立和维护连接的方式。在J2ME中,可以使用`java.net.Socket`类创建一个套接字,与服务器建立连接,并通过输入...

    j2me socket 图片上传

    Socket是TCP/IP网络编程的基本组件,它允许两个网络应用程序之间建立连接并交换数据。在J2ME中,`java.net.Socket`类用于实现客户端Socket,而服务器端通常使用`ServerSocket`来监听客户端的连接请求。要建立一个...

    郭克华J2ME实例教程完整版之Socket编程

    《郭克华J2ME实例教程完整版之Socket编程》是一份专为初学者设计的教程,涵盖了J2ME(Java Micro Edition)平台上的Socket编程技术。本教程以WMV视频格式呈现,辅以图文说明,使学习过程更加生动直观。Socket编程是...

    精通J2ME无线编程(新)

    4. **网络编程**:阐述如何利用J2ME进行无线通信,包括HTTP连接、Socket编程和数据传输。 5. **数据存储**:介绍如何在有限的移动设备存储空间内进行数据管理,如Record Management System (RMS)。 6. **游戏开发*...

    精通J2ME无线编程

    《精通J2ME无线编程》是一本专注于Java Micro Edition(J2ME)技术在无线设备上的应用开发的书籍。J2ME是Java平台的一个子集,设计用于资源有限的嵌入式设备,如手机、PDA和家用电器等。通过J2ME,开发者可以创建在...

    J2ME网络编程.

    ### J2ME网络编程深入解析 #### 一、通用连接框架(GCF)基础知识 J2ME,即Java 2 Micro Edition,是Java平台的一个版本,主要用于小型设备如手机、PDA和其他嵌入式系统的应用程序开发。J2ME的网络编程能力是其关键...

    Socket编程在J2ME中的应用

    Socket编程在J2ME中的应用主要涉及到网络通信的基础知识,特别是Java Micro Edition (J2ME) 平台上的网络编程。J2ME是Java平台的一个子集,主要用于嵌入式设备和移动设备,如手机、PDA等。在这个场景下,Socket编程...

    J2ME Socket Chat MIDlet [isometric]-开源

    **J2ME Socket Chat MIDlet 开源项目详解** 在移动设备技术领域,Java 2 Micro Edition(J2ME)曾是开发嵌入式系统和移动应用的重要平台。本项目名为"J2ME Socket Chat MIDlet [isometric]",是一个开源的聊天应用...

    j2ME无线编程开发基础与入门

    网络编程在J2ME中也占有重要地位,J2ME提供了HttpConnection和SocketConnection接口,用于实现HTTP和TCP/IP通信。开发者可以利用这些接口实现网络请求,获取远程数据,从而构建各种联网应用,如即时通讯、在线游戏等...

    j2me项目编程源码

    4. **网络编程**:J2ME提供了HttpConnection和Socket连接,使得开发者可以实现网络通信,如下载、上传数据或者进行HTTP请求。 5. **数据存储**:J2ME使用RecordStore系统来存储小量数据,类似于简单的数据库。...

    J2ME网络编程[收集].pdf

    J2ME网络编程是软件开发领域中的一个重要分支,特别是在移动应用开发中,如J2ME版的UCWEB、QQ和飞信等。本文将深入探讨J2ME的网络编程,特别是通用连接框架(Generic Connection Framework,GCF)的基础知识,以及在...

    J2ME中使用Socket开发联网程序

    #### 二、J2ME中的Socket编程基础 在 J2ME 中,Socket 编程主要通过 `javax.microedition.io` 包下的类来实现。具体来说,根据使用的协议不同,分为基于 TCP 的 `SocketConnection` 和基于 UDP 的 `...

    j2me网络编程以及网络游戏的实现.doc

    【J2ME网络编程及其在网络游戏中的应用】 J2ME(Java 2 Micro Edition)是Java 2的一个子集,专为嵌入式设备和移动设备设计,如手机、智能电视和车载信息娱乐系统等。它提供了一个轻量级的运行环境,允许开发者创建...

Global site tag (gtag.js) - Google Analytics