年初做了个C/S的项目,当时找了一把的资料,整理整理,写了个例子出来,今天一看,好像不怎么样,不够通用,于是就操起Eclipse,把它给改造了,抽出业务逻辑的具体处理,一个是AbstractServerHandle (抽象类),一个是ClientHandleImpl(接口),加入线程池(以前写的一个小东西),再把log4j给弄进去,就有了最终的csComm.jar。
  在这里,源码公开也没什么必要了,厉害的根本就不会看,新手就直接用这个包好了,如果真的有必要的话,是可以发布源码的,看需要的人多不多。
  要实现c/s交互,需要实现那个接口(ClientHandleImpl)以及继承那个抽象类(AbstractServerHandle ),然后实例化Server及Client,就可以了,下面是示例代码:

package com.cnblogs.zxub.csDemo;

import java.net.Socket;
import java.util.ArrayList;
import java.util.List;

import com.cnblogs.zxub.csComm.server.AbstractServerHandle;

/** *//**
 * @author zxub 2006-7-20 下午04:37:51
 */
public class ServerHandle extends AbstractServerHandle
{
    public void showMessage(String msg)
    {
        System.out.println(msg);
    }

    public void handle(String command, Socket socket)
    {
        System.out.println("get client command:" + command);
        List msgList = new ArrayList();
        msgList.add("get [" + command + "]");
        this.sendMsgToClient(msgList, socket);
    }
}
package com.cnblogs.zxub.csDemo;

import java.net.Socket;

import com.cnblogs.zxub.csComm.client.ClientHandleImpl;

/** *//**
 * @author zxub 2006-7-20 下午04:41:21
 */
public class ClientHandle implements ClientHandleImpl
{

    public void handle(String reply, Socket socket)
    {
        showMessage("get server reply:" + reply);
    }

    public void showMessage(String msg)
    {
        System.out.println(msg);
    }

}
package com.cnblogs.zxub.csDemo;

import com.cnblogs.zxub.csComm.server.Server;

/** *//**
 * @author zxub 2006-7-20 下午04:43:49
 * 
 */
public class ServerTest
{
    public static void main(String[] args)
    {
        Server server=new Server(8888,new ServerHandle());
        new Thread(server).start();
    }
}
package com.cnblogs.zxub.csDemo;

import com.cnblogs.zxub.csComm.client.Client;

/** *//**
 * @author zxub 2006-7-20 下午05:02:57
 * 
 */
public class ClientTest
{

    public static void main(String[] args)
    {
        Client client=new Client("127.0.0.1",8888,new ClientHandle());
        new Thread(client).start();
        client.setSendingMsg("test");
        client.setSendingMsg("test2");
    }

}

  运行后就有效果了。
  csDemo下载,实例代码没用线程池,尽管也在那个包里,只是演示。

转载于:https://www.cnblogs.com/zxub/archive/2006/07/20/455831.html

对于C/S应用的小结【原创】相关推荐

  1. 成龙《宝贝计划》精彩场景小结

    成龙<宝贝计划>精彩场景小结 原创:liigo 原始链接:http://blog.csdn.net/liigo/archive/2006/10/05/1322180.aspx,转载必须注明 ...

  2. Unity3d NGUI控件知识

    参考:http://forum.exceedu.com/forum/forum.php?mod=viewthread&tid=33091&extra=page%3D1 一.Panel ...

  3. CSDN 英特尔多核计算技术版精华贴整理(1)

    CSDN 英特尔多核计算技术版精华贴整理(1) 蒙celineshi版主厚爱,我现在也忝列英特尔多核计算技术版版主了.上任时日虽然不久,但一直都想把本版最有价值贴子(MVP?)整理起来奉献给大家.拖之 ...

  4. oracle1124下载,txt1124

    编辑 删除 全球通史笔记 古文明时期技术的进步促进了文明的发展,而文明的发展又促进了技术的进步,二者相辅相成.原始部落时期,人与人的地位相对平等,男人们负责外面打猎,而女人则除了照顾小孩,也需要外出劳 ...

  5. Hadoop 2.4.1 设置问题小结【原创】

    先丢点问题小结到这里,免得忘记,有空再弄个详细教程玩,网上的教程要不就是旧版的,要不就是没说到点子上,随便搞搞也能碰上结果是对的时候,但是知其然而不知其所以然,没意思啊.解决问题的方法有很多种,总得找 ...

  6. 2020年计算机二级access考试大纲,2020年全国计算机二级ACCESS考试分析与小结(7页)-原创力文档...

    全国计算机二级 Access 考试分析与小结 通过对历年全国计算机二级的真题分析 , 我们可以看出 : 较之 VFP.C 语言等二级课程 ,Aess 有着不可取代的优势. 无论是在题型上 , 还是考试 ...

  7. [原创] 神的计划9 - 创世纪–小结

    小结 上一篇     创世纪作为圣经的开篇,记录了从耶和华造人到约瑟身死停灵近2500年的事情,其中透露着耶和华对于人类的一个接一个的计划.在这里我们要引入一个新的纪元方法,创世纪年,他以造亚当为创世 ...

  8. 每个c语言程序写完后 都要按照,c语言基础学习小结(习题总结)(5页)-原创力文档...

    书山有路勤为径 学海无涯苦作舟 一.思考题. 1.你如何向别人解释清楚什么是编程.什么是计算机语言? 2.什么是C语言? 二.解答题. 1.用C语言编写程序:求任意两个整数的和.如果是小数的话,要求输 ...

  9. 原创玄幻小说--那时花开--前部完之小结

    本想写一部关于爱情的玄幻小说,可是写着写着就把握不住了, 带了一些武侠色彩. 原计划共分上中下三部的,现在写完的是前部,男女主人公的少年时期,主题应该是"缘起". 总觉得写得不好, ...

  10. php libdir,PHP扩展小结

    线程安全宏定义 TSRM/TSRM.h文件中有如下定义 #define TSRMLS_FETCH()void ***tsrm_ls = (void ***) ts_resource_ex(0, NUL ...

最新文章

  1. 硕士全年不开学?一批高校发布秋季学期返校时间!
  2. 先了解一下Shiro安全框架
  3. 《Breakfast At Tiffanys》
  4. 怎么把分开的pdf放在一起_糖和盐混在一起了要怎么分开?| 趣问万物
  5. LeetCode 1229. 安排会议日程(双指针)
  6. update yum 到指定版本_centos使用yum update升级到指定小版本
  7. Opencv--从CalibrateCamera到SolvePnp(一)
  8. Nginx+FastCGI支持HTTPS部署过程详述
  9. 【jQuery笔记Part1】02-jQuery代码风格
  10. pycharm创建django项目界面解释
  11. 微信JS SDK网页接口
  12. 互联网创新创业大赛优秀范例_大学生互联网+创新创业优秀案例选辑.第一辑...
  13. 使用JavaScript实现纯前端读取excel文件并与后台进行交互
  14. 51单片机前言知识总结
  15. 动词ing形式的5种用法_动词ing形式的用法及变化规则
  16. 苹果电脑教程之退出ID账号
  17. halcon measure_pos和measure_pairs详解
  18. 求一个3×3矩阵对角线元素之和。
  19. 全栈开发必看书籍整理及推荐(精选)
  20. 要求树根像果实一样作贡献,就只好把它做柴烧了

热门文章

  1. idea上安卓 Android SDK的安装
  2. 【渝粤教育】电大中专营销策划原理与实务作业 题库
  3. lu分解 百度百科
  4. 关于VS2017提示I/O文件操作函数需要加上_s的解决办法
  5. 在Eclipse或工作空间中 ,复制或修改项目后,把项目部署后发现还是原来的项目名称...
  6. BOM对象有哪些,列举window对象?
  7. 给self.navigationItem.rightBarButtonItem设置字体颜色
  8. Java or PHP? 谈谈高并发网站的技术选型和架构设计
  9. 「HNOI 2015」实验比较
  10. AspectJ——预编译方式实现AOP