`
wangxc
  • 浏览: 210477 次
  • 性别: 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编程技术学习的代码

    J2ME网络编程[收集].pdf

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

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

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

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

    郭克华J2ME实例教程完整版 WMV格式适合新手 图文并茂

    Socket编程在J2ME中的应用

    这是本人制作的一个演示服务器与客户端聊天的实例,是用MIDP技术来做的。读者下载后,只要稍加修改,就可以实现类似于QQ中的群聊功能。

    J2ME中使用Socket开发联网程序

    介绍了J2ME中使用Socket进行网络连接

    基于J2ME的手机编程

    一个基于J2ME的手机编程方面的资料,讲解比较详细,适合J2ME学习者学习!

    SocketChat.rar_J2ME_Java_

    J2ME网络编程,通过socket,两个人进行聊天

    j2me程序sslsocket联网编程(客户端,服务器),wtk导入数字证书

    程序采用sslsocket联网技术实现,采用自己创建的数字证书,导入wtk中实现联网安全信息传输。 共同探讨:jack_sj@139.com

    J2ME MIDP 手机编程实例集源码.rar

    J2ME MIDP 手机编程实例集源码,包括了UDP Socket方面的编程技巧,还有一更简单的基础实例,主要都是一些前两年的手机游戏编程资料,现在放上来分享给大家,对于打基础还是有用的。

    郭克华 J2ME视频配套课件 及源码 ppt

    入门 01体系介绍和环境配置 其他 25J2ME代码优化 ...18网络编程1:Socket编程 19案例4:聊天室开发 20网络编程2:UDP编程 21网络编程3:HTTP编程 RMS开发 15RMS编程1:基础知识 16RMS编程2:高级知识 17案例3

    J2ME移动开发实战教学视频(9.多线程.rar)

    18. 网络编程1Socket编程 19. 案例4聊天室开发 20. 网络编程2UDP编程 21. 网络编程3HTTP编程 22. GameAPI 1游戏画布,图层和游戏精灵 23.GameAPI 2Sprite碰撞检测和动画 24. GameAPI 3TiledLayer和图层管理 25. J2ME...

    基于j2me的手机聊天软件

    一款简单的基于j2me的手机聊天软件,采用socket网络编程技术实现两个客户端之间的通信,程序中包含一个服务器端程序和一个客户端程序。

    MIDP2.0端到端socket编程案例

    nokia提供的移动开发中端到端的例子

    基于J2ME的Java游戏--五子棋的开发

    联网对战涉及到Socket编程,客户端和服务器通过TCP/IP协议进行通信。客户端负责用户界面展示,接收用户操作并发送至服务器,同时处理来自服务器的数据。服务器端则维护在线用户信息,存储每个对战用户的棋盘状态,...

    第十章无线网络开发--j2me开发.ppt

    GCF是一套专为J2ME设计的I/O和网络互联API,它简化了在移动设备上进行网络编程的复杂性。 - **GCF组成**:GCF包括`Connector`工厂类、`ConnectionNotFoundException`异常以及一系列接口,如`Connection`、`...

    《J2ME平台手机游戏开发》教学大纲

    《J2ME平台手机游戏开发》是一门针对游戏软件专业的实践性强的课程,旨在通过学习Java编程语言,深入理解J2ME(Java 2 Micro Edition)的特性,特别是MIDP(Mobile Information Device Profile)1.0和CLDC...

    3. 高级界面开发2Command事件和List

    18. 网络编程1Socket编程 19. 案例4聊天室开发 20. 网络编程2UDP编程 21. 网络编程3HTTP编程 22. GameAPI 1游戏画布,图层和游戏精灵 23.GameAPI 2Sprite碰撞检测和动画 24. GameAPI 3TiledLayer和图层管理 25. J2ME...

    3.高级界面开发2Command事件和List1\03-2.swf

    18. 网络编程1Socket编程 19. 案例4聊天室开发 20. 网络编程2UDP编程 21. 网络编程3HTTP编程 22. GameAPI 1游戏画布,图层和游戏精灵 23.GameAPI 2Sprite碰撞检测和动画 24. GameAPI 3TiledLayer和图层管理 25. J2ME...

Global site tag (gtag.js) - Google Analytics