16 java 开发实例——网络五子棋游戏

16 java 开发实例——网络五子棋游戏

ID:33660844

大小:908.50 KB

页数:46页

时间:2019-02-28

16 java 开发实例——网络五子棋游戏_第1页
16 java 开发实例——网络五子棋游戏_第2页
16 java 开发实例——网络五子棋游戏_第3页
16 java 开发实例——网络五子棋游戏_第4页
16 java 开发实例——网络五子棋游戏_第5页
资源描述:

《16 java 开发实例——网络五子棋游戏》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、16章Java开发实例——网络五子棋游戏 使用Eclipse集成开发工具可以方便地开发Java应用程序,本节就以一个综合实例对前面章节学过的内容进行总结与提升。读完本章后,读者能够清楚地知道使用Eclipse开发Java应用程序的完整流程。 16.1JavaSocket编程基础由于本章采用的实例需要用到Java的Socket类实现网络通信,首先来介绍一下JavaSocket编程的基础知识,以便读者能够相对轻松地阅读后面的章节。 16.1.1Socket简介 Socket通常称为“套接字”,它是一个封装了IP地址和端口通信链的句柄,应用程序通常通过

2、“套接字”向网络发出请求或者应答网络请求。Socket可以视为两个程序进行的通信连接的端点,一个程序将信息写入Socket中,该Socket将信息发送到对方Socket中,通信另一方的应用程序通过读取Socket来获取相应得信息。Socket的通信过程如图16-1所示。 由图16-1可以看到,Socket通信的过程如下。 (1)主机A上的程序A将一段信息写入Socket中,Socket的内容被主机A的网络管理软件访问后通过主机A的网络接口卡发送到主机B。 (2)主机B的网络接口卡将接收到的信息传送给主机B的网络管理软件,网络管理软件将这段信息保

3、存在主机B的Socket中,然后程序B在自己的Socket中阅读这段信息。 16.1.2JavaSocket的基本类 网络编程的基本模型是客户机/服务器模型,即通常所说的C/S结构。JavaSDK提供一些API类来完成客户机Socket和服务器Socket的构建与通信,这些类存在于Java.net包中。常用的类有Socket和ServerSocket类。 (1)Socket类。当客户程序需要与服务器程序通信的时候,客户程序要在客户机创建一个Socket对象。Socket类常用的构造函数是Socket(Stringhost,intport),它创建

4、一个基于Socket的连接服务器流套接字的客户流套接字。如果创建了一个Socket对象,它可以通过调用Socket的getInputStream()方法从服务程序获得输入流传送来的信息,也可以通过调用Socket的getOutputStream()方法获得输出流,来发送消息。在读写活动完成之后,客户程序必须调用close()方法关闭流和流套接字。 (2)ServerSocket类。服务器端有一个专门的ServerSocket对象,ServerSocket有几个构造函数,最简单的是ServerSocket(intport)。服务首先构造一个Serv

5、erSocket对象(port参数传递的端口号就是服务器监听连接请求的口),创建完成后就开始准备接收连接请求。接下来服务程序进入循环,循环从调用ServerSocket的accept()方法开始(accept()方法将导致调用线程阻塞直到连接建立),建立连接后accept()返回一个绑定了客户程序的IP地址或端口号的Socket46对象。由于存在单个服务程序与多个客户程序通信的可能,解决方法是服务器主机运行一个处理服务程序和客户程序的通信后台线程。 16.2网络五子棋程序的代码结构详解 本实例是一个简单的网络五子棋程序。程序由两个部分组成:一部分

6、为服务器,另一部分为五子棋客户。其中服务器以消息方式完成客户的管理,客户支持对弈和聊天。实例源代码由com.fivechess.chessface、com.fivechess.client和com.fivechess.server3个包组成。 注意详细注释都写在代码中。 16.2.1com.fivechess.chessface 此包主要包含与游戏客户界面有关的一些类文件,如chessPad、chatPad、controlPad和inputPad等。下面分别介绍这几个文件。 1.chatPad chatPad类是一个用户界面组件,其本身是一个具有

7、带有滚动条的文本域的Panel,用户的聊天信息和命令的执行结果都将在此文本域上显示。chatPad的实现代码如实例16-1所示。 【实例16-1】chatPad(chatPad.java) packagecom.fivechess.chessface; importjava.awt.BorderLayout; importjava.awt.Panel; importjava.awt.TextArea; /** *@authorwufenghanren *聊天信息Panel。Panel上的文本域可以显示用户聊天信息 */ publicclass

8、chatPadextendsPanel{ publicTextAreachatLineArea=newTextArea("",18,30

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。