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下载
,实例代码没用线程池,尽管也在那个包里,只是演示。
查看全文
相关阅读:
Spring导出可以运行的jar包
sed 多行处理详细总结
Shell获取某目录下所有文件夹的名称
linux 删除换行符
linux 切分文件
jdbctemplate 获取数据表结构的方法&注意事项
linux 使用ifstat查看网络使用情况
postgresql 函数获取多个字段的数字大小值
vim 正则替换功能
jstl 格式化
原文地址:https://www.cnblogs.com/zxub/p/455831.html
最新文章
物理引擎中的刚体转动1
刚体质量分布与牛顿-欧拉方程
VTK使用矢量数据弯曲几何体
VTK计算网格模型上的最短路径
VTK拾取网格模型上的可见点
用MATLAB生成模糊控制离线查询表
计算模糊控制离线查询表
ROS actionlib学习(三)
orocos_kdl学习(二):KDL Tree与机器人运动学
orocos_kdl学习(一):坐标系变换
热门文章
ROS actionlib学习(二)
ROS actionlib学习(一)
Etl之HiveSql调优(left join where的位置)
数据集市层——论为什么随着技术分析的深入,决策数据报表问题越来越多
Spark和hadoop的关系
在线程池使用Callable和Runnable的区别以及如何关闭线程
Hadoop学习笔记(老版本,YARN之前),MapReduce任务Namenode DataNode Jobtracker Tasktracker之间的关系
java&postgresql时区总结
深入浅出 nginx lua 为什么高性能
添加JavaDoc
Copyright © 2011-2022 走看看