浏览 15318 次
锁定老帖子 主题:Apache Mina简单实例客户端篇
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-06-30
最后修改:2010-02-08
package com.heming.apache.mina.samplesclient; import org.apache.mina.core.service.IoHandlerAdapter; import org.apache.mina.core.session.IdleStatus; import org.apache.mina.core.session.IoSession; /** * 消息处理类 * @author 何明 * */ public class SamplMinaClientHander extends IoHandlerAdapter { @Override public void exceptionCaught(IoSession arg0, Throwable arg1) throws Exception { // TODO Auto-generated method stub } /** * 当客户端接受到消息时 */ @Override public void messageReceived(IoSession session, Object message) throws Exception { //我们已设定了服务器的消息规则是一行一行读取,这里就可以转为String: String s = (String)message; //Writer the received data back to remote peer System.out.println("服务器发来的收到消息: " + s); //测试将消息回送给客户端 session.write(s); } @Override public void messageSent(IoSession arg0, Object arg1) throws Exception { // TODO Auto-generated method stub } /** * 当一个客户端被关闭时 */ @Override public void sessionClosed(IoSession session) throws Exception { System.out.println("one client Disconnect"); } @Override public void sessionCreated(IoSession arg0) throws Exception { // TODO Auto-generated method stub } @Override public void sessionIdle(IoSession arg0, IdleStatus arg1) throws Exception { // TODO Auto-generated method stub } /** * 当一个客户端连接进入时 */ @Override public void sessionOpened(IoSession session) throws Exception { System.out.println("incomming client:" + session.getRemoteAddress()); session.write("我来啦"); } } package com.heming.apache.mina.samplesclient; import java.net.InetSocketAddress; import org.apache.mina.core.filterchain.DefaultIoFilterChainBuilder; import org.apache.mina.core.future.ConnectFuture; import org.apache.mina.filter.codec.ProtocolCodecFilter; import org.apache.mina.filter.codec.textline.TextLineCodecFactory; import org.apache.mina.transport.socket.nio.NioSocketConnector; /** * 启动客户端 * @author 何明 * */ public class MainClient { public static void main(String []args)throws Exception{ //Create TCP/IP connection NioSocketConnector connector = new NioSocketConnector(); //创建接受数据的过滤器 DefaultIoFilterChainBuilder chain = connector.getFilterChain(); //设定这个过滤器将一行一行(/r/n)的读取数据 chain.addLast("myChin", new ProtocolCodecFilter(new TextLineCodecFactory())); //服务器的消息处理器:一个SamplMinaServerHander对象 connector.setHandler(new SamplMinaClientHander()); //set connect timeout connector.setConnectTimeout(30); //连接到服务器: ConnectFuture cf = connector.connect(new InetSocketAddress("localhost",8899)); //Wait for the connection attempt to be finished. cf.awaitUninterruptibly(); cf.getSession().getCloseFuture().awaitUninterruptibly(); connector.dispose(); } } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-02-01
哥们,问一个问题。
我用你的这个程序,客户端接收不到服务器发送来的数据是怎么回事。 |
|
返回顶楼 | |
发表时间:2010-02-01
如果你在了,一定要给回复一下。
这个问题快搞死我了。 |
|
返回顶楼 | |
发表时间:2010-02-01
youyang 写道 如果你在了,一定要给回复一下。
这个问题快搞死我了。 不可能的哈,我都是经过测试了的啊,发现什么错误没哦 |
|
返回顶楼 | |
发表时间:2010-02-08
没错,但是也没有回。
留下你的E—MAIL,我把项目发给你, 你帮我看一下吧 |
|
返回顶楼 | |
发表时间:2010-02-08
youyang 写道 没错,但是也没有回。
留下你的E—MAIL,我把项目发给你, 你帮我看一下吧 你把附件下下来看吧 |
|
返回顶楼 | |
发表时间:2010-02-25
服务端收不到消息 估计你客户端发送到消息没有按照服务端解码的要求来发 在这里就是没有 换行符
|
|
返回顶楼 | |
发表时间:2010-06-17
最后修改:2010-06-17
youyang 写道 哥们,问一个问题。
我用你的这个程序,客户端接收不到服务器发送来的数据是怎么回事。 修改程序里的客户端ip为你的机器的ip地址,或者是127.0.0.1。然后再修改服务器端和客户端的端口,两者设置一致,应该没问题的! |
|
返回顶楼 | |
发表时间:2010-06-26
请教个问题。
客户端怎么做到一次连接 多次发送呢。 注意 是客户端。 多谢 |
|
返回顶楼 | |