声明:
这是一个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是Modbus协议的网络版本,它在标准的TCP/IP协议之上构建,使得不同设备可以通过以太网进行通信。 - Modbus协议基于主从架构,其中一个是主设备(如PLC或计算机),其余为从设备(如传感器、驱动器)。...
《UNIX网络编程》是网络编程领域的一本经典著作,它深入浅出地讲解了在UNIX系统上进行...附带的源码可以加深对书中理论的理解,是学习和研究网络编程的宝贵资源。无论是初学者还是经验丰富的工程师,都能从中受益匪浅。
TCP/IP套接字编程是核心部分,包括TCP和UDP协议,以及套接字选项、套接字地址结构、连接管理、错误处理和性能优化等。 此外,源码分析是提升技能的有效途径。通过阅读和理解开源的UNIX/Linux程序,可以学习到最佳...
在"p2p项目源码附带文档说明"的资源中,你可以找到一个完整的P2P系统实现的源代码,这将是一次深入了解P2P网络工作原理和技术细节的好机会。尽管你没有使用过这个项目,但通过学习源码,可以增进对P2P网络编程的理解...
Socket编程涉及网络通信的基本原理,包括TCP/IP协议栈,客户端-服务器交互,以及数据的打包和解包。 2. "Hosp EMMMR code" - 这可能是一个具体的EMR系统的部分源代码,可能涵盖了医院EMR系统的核心功能,如患者信息...
本资源提供的"局域网文件传输"附带源码,对于编程爱好者来说是一个宝贵的自学和实践机会。 首先,我们来探讨局域网文件传输的基本原理。局域网是由多台计算机和设备通过网络设备(如交换机和路由器)连接在一起形成...
分布式文件共享软件 Maze 源码是一个用于学习和理解 P2P(对等网络)程序设计的宝贵资源。Maze 是一个实现文件共享功能的系统,它允许网络上的多个节点通过 P2P 技术相互交换文件。在这个系统中,每个参与节点既是...
"UDP/IP"则指代用户数据报协议和互联网协议,是网络通信的基础协议,其中UDP是一种无连接、轻量级的传输协议,适合于实时应用和对延迟敏感的通信。 在【压缩包子文件的文件名称列表】"Ethernet_Test"中,我们可以...
源码中会包含用于建立连接、加密通信以及数据传输的模块,这部分对于理解网络编程和安全协议(如TCP/IP、SSL/TLS)至关重要。 2. **多平台支持**:为了实现跨平台远程控制,源码可能会包含针对不同操作系统(如...
源码涵盖了TCP/IP、UDP通信,服务器和客户端的设计,以及网络协议的理解和实现。 8. **系统安全**:在Linux环境下,程序的安全性至关重要。书中讨论了权限控制、文件系统安全、进程安全等方面,并提供了相应的安全...
TCP/IP协议栈在UNIX系统中的实现是网络编程的核心,包括套接字的创建、连接、监听、接受和发送数据等步骤。 4. **进程间通信(IPC)**:UNIX提供了多种进程间通信方式,如管道、信号、消息队列、共享内存、套接字等...
5. **网络通信**:UNIX环境下的网络编程主要包括TCP/IP协议栈的使用,如套接字API,包括socket、bind、listen、accept和connect等函数。此外,还会涉及多路复用I/O(select、poll和epoll)以及套接字选项。 6. **...
1. **学习网络编程**:了解如何实现网络扫描、数据传输等功能,深入理解TCP/IP协议和网络编程技术。 2. **理解控件应用**:学习软件界面设计,如何使用控件创建用户友好的界面,提升软件交互体验。 3. **资源管理*...
本项目着重于利用Unity进行语音聊天功能的实现,并结合WebRTC技术进行降噪处理,提供了Windows和Android平台的库支持,并附带源码,方便开发者进行自定义扩展。 首先,让我们深入理解Unity中的语音聊天功能。在...
基于MFC和STL平台的字符串类,可以实现在快速字符串搜索。 enum_display_modes_demo.zip enum_display_modes_src.zip 列出所有的显示模式并列表出来,通过单击列表来改变显示分辨率。 iconbutton_demo.zip ...
(2)Socket通信(TCP/IP) (3)数据源XML导出导入 (4)XML分包 【实现功能】 (1)Access外网共享访问(废话,必须的) (2)多用户同时连接访问数据库 (3)理论上突破Access最大并发数255,稳定与否待...
基于MFC和STL平台的字符串类,可以实现在快速字符串搜索。 enum_display_modes_demo.zip enum_display_modes_src.zip 列出所有的显示模式并列表出来,通过单击列表来改变显示分辨率。 iconbutton_demo.zip ...
基于MFC和STL平台的字符串类,可以实现在快速字符串搜索。 enum_display_modes_demo.zip enum_display_modes_src.zip 列出所有的显示模式并列表出来,通过单击列表来改变显示分辨率。 iconbutton_demo.zip ...
基于MFC和STL平台的字符串类,可以实现在快速字符串搜索。 enum_display_modes_demo.zip enum_display_modes_src.zip 列出所有的显示模式并列表出来,通过单击列表来改变显示分辨率。 iconbutton_demo.zip ...
书中附带的全书源码对于实践和学习至关重要,它允许读者通过实际代码来加深对理论知识的理解,同时提供了一个可操作的平台来测试和调试自己的程序。通过阅读和分析这些源码,可以更好地掌握Unix环境下的编程技巧和...