zoukankan
html css js c++ java
对于C/S应用的小结【原创】
年初做了个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下载
,实例代码没用线程池,尽管也在那个包里,只是演示。
查看全文
相关阅读:
父级和 子集 controller 之间的通讯
ui-router(三)controller与template
ui-router详解(二)ngRoute工具区别
关于MySql全文索引
Yii提供的Htmler助手checkboxList可自定义Checkbox输出格式
添加和删除索引以及如何给中间表添加两个主键
设置数据库及表的默认字符集
保存数据的时候报类型错误的原因和解决方案
金融经济
YII获取刚插入数据的id主键
原文地址:https://www.cnblogs.com/zxub/p/455831.html
最新文章
Java常用类整理
MySQL基础~~编程语法
二叉排序树的删除
Qt编写自定义控件20-自定义饼图
Qt开发经验小技巧合集
Qt编写安防视频监控系统12-异形布局
Qt编写安防视频监控系统11-动态换肤
Qt编写安防视频监控系统10-视频轮询
Qt编写安防视频监控系统9-自动隐藏光标
Qt编写安防视频监控系统8-双击节点
热门文章
Qt编写安防视频监控系统7-全屏切换
Qt编写安防视频监控系统6-面板开关
Qt编写安防视频监控系统5-视频回放
AngularJS 中 Provider 的用法及区别
AngularJS 中的作用域
AngularJS 中 Controller 之间的通信
AngularJS 的数据绑定
关于 AngularJS 的数据绑定
AngularJS 常用模块书写建议
angular.js 动态插入删除dom节点
Copyright © 2011-2022 走看看