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下载
,实例代码没用线程池,尽管也在那个包里,只是演示。
查看全文
相关阅读:
SCRIPT7002: XMLHttpRequest: 网络错误 0x2efe, 由于出现错误 00002efe 而导致此项操作无法完成
经纬转换成point的sql
build.xml
ubuntu下安装vsftpd及vsftpd配置文件不见的解决办法
500 OOPS: could not read chroot() list file:/etc/vsftpd.chroot_list
【linux】su、sudo、sudo su、sudo -i的用法和区别
Js获取上一月份
BigDecimal工具类
查询重复的记录
Excel 合并单元格
原文地址:https://www.cnblogs.com/zxub/p/455831.html
最新文章
hdu 1874 畅通工程续(求最短距离,dijkstra,floyd)
hdu 1879 继续通畅工程(最小生成树)
hdu 1233 还是畅通工程 (最小生成树)
hdu 1232 畅通工程 (并查集)
hdu Eddy's picture (最小生成树)
孤儿文档是怎样产生的(MongoDB orphaned document)
带着问题学习分布式系统之数据分片
CAP理论与MongoDB一致性、可用性的一些思考
通过一步步创建sharded cluster来认识mongodb
闲话进度条
热门文章
文件系统与linux相关知识点
操作系统之cache、伙伴系统、内存碎片、段式页式存储管理
那些年,程序员用过的行酒令
由一个简单需求到Linux环境下的syslog、unix domain socket
area point sql
git回退到某个历史版本
Git命令提交项目代码
总结MySQL修改最大连接数的两个方式
UDJC用户自定义Java类
如何修改eclipse下注释的颜色
Copyright © 2011-2022 走看看