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下载
,实例代码没用线程池,尽管也在那个包里,只是演示。
查看全文
相关阅读:
Linux 下配置多路径及SCSI扫描磁盘重新发现大小
vSphere vSwitch网络属性配置详解
勤动脑筋
如何用visual studio2013编写简单C语言程序
两个字符窜,在母窜中查找子窜的位置
如何安装Microsoft Visual C++6.0
看张子阳如何在30岁前年薪超过30万觉得很有道理几点
标志位放错了位置
注意细节
探索式学习
原文地址:https://www.cnblogs.com/zxub/p/455831.html
最新文章
mac终端命令
nodejs之Buffer
html5兼容
Java和Python的特性区别!看这篇文章就够了
《我的世界》迎来世代更新!Java天下第一,mc天下第一!
什么是Mybatis?最全的Mybatis知识点整合!
java基础—string,值得java初学者收藏!
java小项目之:泡泡堂炸弹人,来互相伤害呀!
java重写与重载的详解与区别!
Hibernate和MyBatis的相同点和区别!
热门文章
Java小项目之:图书馆管理系统!
Java小项目之:拼图游戏!
java数据库学习路线和必学知识点!
活动目录对象属性批量修改工具------ADModify
Windows Server 2008 R2 ntoskrnl.exe 引起蓝屏故障,重新启动
Exchange 2003 群集迁移 & SPS 2003 迁移、SQL Server 2000群集
Exchange Server 2010邮件策略与遵从性
Exchange Server备份与恢复
安装部署及升级到Exchange Server 2010
如何从Domino迁移到Exchange 2010
Copyright © 2011-2022 走看看