`
totoxian
  • 浏览: 1074424 次
  • 性别: Icon_minigender_2
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

基于TCP/IP的手机聊天游戏(附带源码和解释)之共享类

阅读更多

声明

这是一个Client基于J2ME以及TCP/IP协议的简单的聊天程序,在本人模拟器上测试没问题,但并不保证真机上会出现问题。

代码以及整个游戏框架你可以拿来自由使用,但请注明出处。

(一)

这部分是程序Cilent端和Server端共用的一些类,之所以把它们拿出来单独写,是为了让整个程序的框架更清晰。

其实也就一个类、一个接口,但思想是一样的,或许你需要更多的类来让Client和Server共用,举个例子来说:如果你采用了“脏矩形技术”,那么可以把每个Item、每个Frame做个共享类放在这里。

Server接口:

public interface Server {
public static final int PORT = 8042;
}

这个接口里很简单,之定义了一个端口号,以便于以后的程序修改和维护。

Message类:

听其名字就知道了,这个是消息类,因为无论是Client端还是Server端,其消息是能抽象出很多相似的东西的。

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;

public class Message {
public static final int NO_VALUE = -1;
public static final int SIGNUP = 0;
public static final int SIGNUP_ACK = 1;
public static final int CLIENT_STATUS = 2;
public static final int SERVER_STATUS = 3;
public static final int ERROR = 4;
public static final int SIGNOFF = 5;
private int type;
private String str;
public static int player_id;

public Message(int type,int player_id,String str) {
this.type = type;
Message.player_id = player_id;
this.str = str;
}

public int getType() {
return type;
}

public String getStr(){
return str;
}

public void archive(DataOutputStream out) throws IOException {
out.writeInt(type);
out.writeInt(player_id);
out.writeUTF(str);
out.flush();
System.out.println("***Client has send :"+type);
}

public static Message createFromStream(DataInputStream in) throws IOException {
Message msg = new Message(in.readInt(), in.readInt(),in.readUTF());
return msg;
}

public String toString() {
return "Message: type # = " + type + ", player_id = "
+ player_id+", content = "+str;
}

}

因为我们只是实现了简单的聊天功能,只是发送简单的字符给Server端,然后让其传送到各个Client端,因此功能比较简单,目的也仅仅用于学习,但你可以在此功能上增加更多的功能。

分享到:
评论

相关推荐

    modbus TCP dll 动态链接库 源码

    - Modbus TCP是Modbus协议的网络版本,它在标准的TCP/IP协议之上构建,使得不同设备可以通过以太网进行通信。 - Modbus协议基于主从架构,其中一个是主设备(如PLC或计算机),其余为从设备(如传感器、驱动器)。...

    unix网络编程(中文第二版+英文第三版+源码)

    《UNIX网络编程》是网络编程领域的一本经典著作,它深入浅出地讲解了在UNIX系统上进行...附带的源码可以加深对书中理论的理解,是学习和研究网络编程的宝贵资源。无论是初学者还是经验丰富的工程师,都能从中受益匪浅。

    UNIX高级环境编程,非常好的资源,附带源码

    TCP/IP套接字编程是核心部分,包括TCP和UDP协议,以及套接字选项、套接字地址结构、连接管理、错误处理和性能优化等。 此外,源码分析是提升技能的有效途径。通过阅读和理解开源的UNIX/Linux程序,可以学习到最佳...

    p2p项目源码附带文档说明

    在"p2p项目源码附带文档说明"的资源中,你可以找到一个完整的P2P系统实现的源代码,这将是一次深入了解P2P网络工作原理和技术细节的好机会。尽管你没有使用过这个项目,但通过学习源码,可以增进对P2P网络编程的理解...

    EMR部分源码库参考

    Socket编程涉及网络通信的基本原理,包括TCP/IP协议栈,客户端-服务器交互,以及数据的打包和解包。 2. "Hosp EMMMR code" - 这可能是一个具体的EMR系统的部分源代码,可能涵盖了医院EMR系统的核心功能,如患者信息...

    局域网文件传输(附源码)

    本资源提供的"局域网文件传输"附带源码,对于编程爱好者来说是一个宝贵的自学和实践机会。 首先,我们来探讨局域网文件传输的基本原理。局域网是由多台计算机和设备通过网络设备(如交换机和路由器)连接在一起形成...

    分布式文件共享软件 Maze源码

    分布式文件共享软件 Maze 源码是一个用于学习和理解 P2P(对等网络)程序设计的宝贵资源。Maze 是一个实现文件共享功能的系统,它允许网络上的多个节点通过 P2P 技术相互交换文件。在这个系统中,每个参与节点既是...

    千兆UDP的Verilog实现源码

    "UDP/IP"则指代用户数据报协议和互联网协议,是网络通信的基础协议,其中UDP是一种无连接、轻量级的传输协议,适合于实时应用和对延迟敏感的通信。 在【压缩包子文件的文件名称列表】"Ethernet_Test"中,我们可以...

    Star Rat Final 远程控制开源代码.rar_STAR_freestar starrat_rat远程控制_star c

    源码中会包含用于建立连接、加密通信以及数据传输的模块,这部分对于理解网络编程和安全协议(如TCP/IP、SSL/TLS)至关重要。 2. **多平台支持**:为了实现跨平台远程控制,源码可能会包含针对不同操作系统(如...

    Linux程序设计第四版 随书源码

    源码涵盖了TCP/IP、UDP通信,服务器和客户端的设计,以及网络协议的理解和实现。 8. **系统安全**:在Linux环境下,程序的安全性至关重要。书中讨论了权限控制、文件系统安全、进程安全等方面,并提供了相应的安全...

    UNIX系统编程(Kay A.Robbins Steven Robbins)附带源码

    TCP/IP协议栈在UNIX系统中的实现是网络编程的核心,包括套接字的创建、连接、监听、接受和发送数据等步骤。 4. **进程间通信(IPC)**:UNIX提供了多种进程间通信方式,如管道、信号、消息队列、共享内存、套接字等...

    UNIX环境高级编程中文版第三版+源码

    5. **网络通信**:UNIX环境下的网络编程主要包括TCP/IP协议栈的使用,如套接字API,包括socket、bind、listen、accept和connect等函数。此外,还会涉及多路复用I/O(select、poll和epoll)以及套接字选项。 6. **...

    LanExplorerII2.0(带源代码的局域网共享资源浏览器 )

    1. **学习网络编程**:了解如何实现网络扫描、数据传输等功能,深入理解TCP/IP协议和网络编程技术。 2. **理解控件应用**:学习软件界面设计,如何使用控件创建用户友好的界面,提升软件交互体验。 3. **资源管理*...

    Unity语音+WebRtc降噪(含源码)

    本项目着重于利用Unity进行语音聊天功能的实现,并结合WebRTC技术进行降噪处理,提供了Windows和Android平台的库支持,并附带源码,方便开发者进行自定义扩展。 首先,让我们深入理解Unity中的语音聊天功能。在...

    vc++ 应用源码包_1

    基于MFC和STL平台的字符串类,可以实现在快速字符串搜索。 enum_display_modes_demo.zip enum_display_modes_src.zip 列出所有的显示模式并列表出来,通过单击列表来改变显示分辨率。 iconbutton_demo.zip ...

    vb.net远程Access访问100%开源

    (2)Socket通信(TCP/IP) (3)数据源XML导出导入 (4)XML分包 【实现功能】 (1)Access外网共享访问(废话,必须的) (2)多用户同时连接访问数据库 (3)理论上突破Access最大并发数255,稳定与否待...

    vc++ 应用源码包_6

    基于MFC和STL平台的字符串类,可以实现在快速字符串搜索。 enum_display_modes_demo.zip enum_display_modes_src.zip 列出所有的显示模式并列表出来,通过单击列表来改变显示分辨率。 iconbutton_demo.zip ...

    vc++ 应用源码包_2

    基于MFC和STL平台的字符串类,可以实现在快速字符串搜索。 enum_display_modes_demo.zip enum_display_modes_src.zip 列出所有的显示模式并列表出来,通过单击列表来改变显示分辨率。 iconbutton_demo.zip ...

    vc++ 应用源码包_5

    基于MFC和STL平台的字符串类,可以实现在快速字符串搜索。 enum_display_modes_demo.zip enum_display_modes_src.zip 列出所有的显示模式并列表出来,通过单击列表来改变显示分辨率。 iconbutton_demo.zip ...

    unix环境高级编程(中文版) 带全书源码

    书中附带的全书源码对于实践和学习至关重要,它允许读者通过实际代码来加深对理论知识的理解,同时提供了一个可操作的平台来测试和调试自己的程序。通过阅读和分析这些源码,可以更好地掌握Unix环境下的编程技巧和...

Global site tag (gtag.js) - Google Analytics