`
nbtlxx
  • 浏览: 249417 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论
文章列表
上次简单介绍了Server的写法,这个类比较简单,主要的功能包括: 1. 初始化,包括玩家列表、游戏桌子列表 2. 接收手机客户端连接 3. 启动网络连接处理 今天主要介绍:网络通讯类和业务处理类 Network类: 主要负责: 1. 接收手机客户端的连接    按照协议读取数据后,添加到消息队列    此处需要处理同步问题 2. 取出消息队列,调用业务逻辑类进行处理    主要是根据消息的cmdType 3. 发送消息    依次读取发送消息队列的消息,    按照协议,依次将cmdType, playerId, msg.length, msg 发送到客户端 具体代码如下: /** ...
使用statement进行数据的查询,基本步骤如下: * 1. 初始化simpleDbSource对象 * 2. 获得getconnection * 3. createStatement 获得查询语句 * 4. executeUpdate, 执行更新语句 * 5. 关闭使用的statement, connection, 注意次序不要弄错 * * 注意:更新语句,执行过一次后,column需要递增,否则报错 /** * */ package db; import java.io.FileNotFoundException; import java.io.IO ...
今天继续学习了connectionPool的概念,就是设置一个list来保存数据库连接对象。 在需要使用连接对象时,从list中获取,如果list为空的情况下,才生成新的connection 下面是具体的代码和配置文件。 /** * */ package db; import java.io.FileNotFoundException; import java.io.IOException; import java.sql.Connection; import java.sql.SQLException; /** * @author sean * ...
今天学习了用配置文件和实现接口等方式来访问数据库。 知识点1. 采用系统api的properties方法来加载配置文件,根据Key,value方式来读取数据库配置信息, driver, url, username, password。 知识点2. 使用接口方式来实现获得数据库连接以及关闭连接 后续还将学习数据库访问连接池等技术。 上述的代码都来自与java学习笔记. /** * */ package db; import java.io.FileNotFoundException; import java.io.IOException; import java. ...
为了更好的理解手机网络游戏的架构和开发技巧,本人在他人手机网络象棋的基本上,进一步进行网络通信部分的修改和优化,采用socket方式进行数据通信。 以下是server的Server.java的简介。 此类主要负责: 1. 游戏共用数据的初始化    playerMap.clear()  玩家容器的清空    Desk[]  遍历数组,赋控制 2. 启动serversocket, 等待client连接 3. 连接客户端后,将socket作为参数,启动独立线程独立读写、逻辑业务(第二篇重点描述) 具体代码如下: /** * */ package net.tuolian.ne ...
今天在项目中使用hashmap 1. hashmap.put(playerid, player) 2. 遍历hashmap    依次取出其中的player value,    查看是否有需要发送的数据    如果有的话,就使用输出流进行write操作 碰到的问题,就是元素取出后强行Cast,发送类型转换异常 下面是正确的代码片段: Iterator it = playerMap.entrySet().iterator(); while (it.hasNext()) { //先获得map.entry, 然后在通过getValue()方法得到需要的值 Map.Entry ...
import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * * @author Administrator * * 第一个serlvet,没有具体的业务 ...
package nio; import java.nio.ByteBuffer; public class TypesInByteBuffer { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub ByteBuffer buffer = ByteBuffer.allocate(64); buffer.putInt(30); buffer.putLong(999999999 ...
今天生成servlet,然后启动tomcat, 系统报错: java.lang.UnsupportedClassVersionError: Bad version number in .class file 解决办法: eclipse的compiler的jdk版本是6,而tomcat所用的jdk版本是1.5 eclipse的compiler的jdk版本,tomcat所用的jdk版本都设置成一致就可以了 eclipse的compiler修改方式:    preference/java/compiler: compiler comliance level: 1.5    原则上就是和tomca ...
今天碰到一个关于反射的例子,写出一个简单的测试代码,作为记录。 package reflect; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; public class MainClass { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub try { ...
今天学习下Concurrent包内线程池的创建、任务执行和关闭,感觉有不少知识点需要总结和整理。 详见具体代码及注释 /** * */ package network; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; import java.util.Timer; import java.util.TimerTask; import java.util.concurrent.ExecutorService; import java.util.co ...
这个类的功能: 1. 利用httpClient开源组件,简化访问web 2. 利用sogou的开放查询接口,进行手机号码归谁查询 注意此处用的HttpClient的版本号为3.1 目前新版本有些api接口做了调整,暂时没有时间测试 /** * */ package demo; import java.io.IOException; import java.util.Scanner; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.Http ...
前阵子做的一个lucene全文检索的小例子,里面涉及jdbc的批量更新,在此发布出来,与大家共享。 也是作为自己学习过程的复习和记录。 找个类的主要功能如下: * 1. 读取包含专业词库的txt文件 * 2. 根据中文分词组件进行切分 * 3. split方法处理,返回字符串数组 * 4. 写出到txt文件输出 * 5. 使用sql批量更新方式插入数据库 */ /** * */ package net.tuolian.product.utils; import java.io.BufferedReader; import java.io.Buffered ...
1.和NIOServer建立连接new Socket(ip, port) * 2.获得Scanner.next(System.in):输入内容 * 3. 将要发送的字符串内容进行处理 *    a. 获得int len = str.getByte().length *    b. 将len 进行byte 处理,依次发给server *    dos.write((byte)temps.length&0xff); dos.write((byte)temps.length>>8&0xff); *    c. 将数据本身发送给NioServer *   ...
最近由于项目需求,参考有关的代码,学习封装了一个队列 主要技术点: 1. 进入队列,需要判断是否isFull(), 2. 出队列, 需要判断isEmpty(), 3. 队列允许插入任何对象 4. 最后一个知识点就是lock.lock(), finally{lock.unlock()}    每次相关操作就需要进行加锁和解锁 /** * */ package util; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; /** * ...
Global site tag (gtag.js) - Google Analytics