`
wangxc
  • 浏览: 210502 次
  • 性别: 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游戏编程

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

    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无线编程

    6. **网络编程**:J2ME提供了HttpConnection和Socket连接,使开发者可以实现无线设备上的网络通信,包括HTTP请求、数据传输和TCP/IP连接。 7. **游戏开发**:J2ME的Canvas类允许创建自定义的绘图和动画,适合开发...

    Socket编程在J2ME中的应用

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

    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网络编程以及网络游戏的实现.doc

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

    J2ME无线设备编程

    **J2ME无线设备编程**是Java Micro Edition(J2ME)在移动和嵌入式设备上的应用开发领域。J2ME为开发针对有限资源和内存的设备,如手机、智能手表、数字电视等提供了框架。它使得开发者能够创建跨平台的应用程序,...

    J2ME GPRS 网络编程

    **J2ME GPRS网络编程详解** Java 2 Micro Edition(J2ME)是Java平台的一个子集,专为资源有限的嵌入式设备,如移动电话和掌上电脑设计。在移动通信领域,J2ME是进行网络编程的重要工具,特别是通过GPRS(General ...

    J2ME手机扑克牌游戏

    5. 网络对战:如果游戏支持多人对战,开发者还需要实现网络通信功能,如使用Socket编程,让玩家能通过蓝牙或互联网进行对战。 手机编程时,开发者需要考虑硬件和操作系统差异,因为J2ME应用需能在多种不同设备上...

    j2me编程教学

    随着学习的深入,你还将接触到J2ME的网络功能,比如使用HttpConnection和SocketConnection进行数据传输,以及XML和JSON解析,这些都是在移动应用中常用的数据交换格式。同时,了解如何使用RecordStore进行本地数据...

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

    在本文中,我们将深入探讨Java ME (J2ME) 平台上的SSLSocket联网编程,以及如何使用WTK(Java Wireless Toolkit)导入数字证书来确保客户端和服务器间的安全信息传输。J2ME是Java的一个子集,专为移动设备和嵌入式...

    J2ME游戏开发教程 pdf文件

    **J2ME游戏开发教程详解** Java 2 Micro Edition(J2ME)是Java平台的一个子集,...总之,J2ME游戏开发教程将带你走进移动游戏开发的世界,理解并掌握上述知识点,你就能构建出属于自己的J2ME游戏,享受编程的乐趣。

Global site tag (gtag.js) - Google Analytics