关于Mina中服务器给客户端发送数据的问题

问题描述

现在的要求是当客户端连接服务器后,发送“login”登陆报文,服务器接受到登陆消息后,就要给客户端一直发送数据。请问应该怎么做?我开启了一个线程,然后给客户端发送消息,但是客户端收不到。这个是我写的线程类public class SendMessageThread implements Runnable{private IoSession session = null;private String msg = null;public SendMessageThread(IoSession session) {this.session = session;}public SendMessageThread(IoSession session, String msg) {this.msg = msg;}@Overridepublic void run() {// TODO Auto-generated method stubif(null == msg) {msg = "test";}while(true) {System.out.println(new Date()+":"+msg);session.write(new Date()+":"+msg);try {Thread.sleep(1000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}public String getMsg() {return msg;}public void setMsg(String msg) {this.msg = msg;}}服务器端messageReceived方法,接受到登陆报文后,就一直给客户端发送消息public void messageReceived(IoSession session, Object obj) throws Exception {// TODO Auto-generated method stubString msg = (String)obj;System.out.println("服务器收到:"+msg);if(msg.equalsIgnoreCase("login")) {System.out.println("用户登陆");session.write("nihao");session.write("nono");new SendMessageThread(session).run();} else {System.out.println("Undefined operation.");}}

解决方案

Runnable不能直接调用run(),应该调用start()

时间: 2024-09-11 10:30:12

关于Mina中服务器给客户端发送数据的问题的相关文章

asyncsocket 接收数据-AsyncSocket 服务器连续快速发送数据,客户端接收数据部分丢失

问题描述 AsyncSocket 服务器连续快速发送数据,客户端接收数据部分丢失 请问各路大神:使用AsyncSocket时,服务器间断向客户端发送消息接收正常.但是,连续快速发送消息就会出现数据丢失的情况.比如连续发100条,客户端可能会少接收十几条消息.这会是什么原因造成的呢?拜托~~ 解决方案 求大神拯救啊 在线等~~

服务器-如何利用UDP广播,给同一台电脑的多个客户端发送数据

问题描述 如何利用UDP广播,给同一台电脑的多个客户端发送数据 项目要求一台电脑同时开启多个同样客户端,同时接受服务器发送过来的数据.我想利用UDP广播实现,但是发现,多个客户端不能绑定同一个端口.这怎么实现啊.请教各位大神,小弟万分感谢! 解决方案 这个是很基础的UDP 协议,这个篇文章看能不能够帮到你:http://blog.csdn.net/qq_21792169/article/details/50412940 解决方案二: 我是想同一台电脑的多个客户端都接收另一台电脑发送过来的数据,但

ajax推技术,在线服务器端向客户端发送数据

问题描述 ajax推技术,在线服务器端向客户端发送数据 ajax推技术,用浏览器访问该网页后,为什么我的代码每次用insert 向数据库插入数据后,当第三次插入数据的时候才会有效果,将$mes显示在浏览器上? 代码如下: <?PHP header("content-type:text/html;charset=utf-8"); set_time_limit(0);//设置服务器脚本的最大执行时间. $conn=mysql_connect('localhost','root','1

socket通讯 android-请求:java写的客户端发送数据失败!!

问题描述 请求:java写的客户端发送数据失败!! 连接时,给服务端发送数据时总是报错!! 11-28 11:15:36.164: D/MainActivity(4212): wifiname:"LcyAP_03001" prxFlag:true substr: LcyAP FirstConn:true 11-28 11:15:36.164: D/MainActivity(4212): Now Ready to create connect to LC:Now wifi stat is

VB WinSocket 连续向 Java写的客户端发送数据出现问题

问题描述 VB6做的服务器端WinSocket,向Java客户端发送数据,第一次发送SendData,Java正常接收.然后再次发送SendData,Java就接收不到数据了.分析原因,发现与http://bbs.csdn.net/topics/120116546这位大哥遇到的问题一模一样.这位大哥在帖子的最后给出来原因:"是VB的服务端程序多发了两个字节的0,这样下一个包的包头就不对了."可是我知道了这个原因之后,却想不出解决办法,所以在此希望各位大哥能帮忙出个好主意解决问题,谢谢!

关于Netty4怎么实现客户端发送数据之后等待服务端的返回结果,谢谢了,非常感谢大侠!!

问题描述 关于Netty4怎么实现客户端发送数据之后等待服务端的返回结果,谢谢了,非常感谢大侠!!

mina做服务socket做客户端(发送数据过大拆成了几条ByteBuffer如何接收)

问题描述 我用java的Mina做服务端接受Socket客户端发送过来的信息,但是发送的信息过大,会给拆成了3-4条ByteBuffer,我通过session将他们可以连接起来,但是关键的问题是如果客户端发送的数据特别多,由于使用了线程池可能出现丢弃数据的可能,而且因为数据特别多mina服务端在过滤器中处理混乱不能拼接成一条完整的数据了.请问那位大侠帮忙出个解决的方法让我能够将数据拼接成功谢谢各位 解决方案 解决方案二:我只能提供我做过的,用的不是Mina,是自己的发送和接收:每个超长的分段发送

UDP多线程传输,为什么客户端向服务器发送数据,能收到;服务器向客户端发数据却不能收到?

问题描述 //客户端#include"stdafx.h"#include<winsock2.h>#include<iostream>#include<cstdlib>#pragmacomment(lib,"WS2_32")//链接到WS2_32.lib#defineBUFFERLEN256usingnamespacestd;classCInitSock{public:CInitSock(BYTEminorVer=2,BYTEmaj

服务器-socket客户端发送消息问题

问题描述 socket客户端发送消息问题 现在需求是两个客户端和一个服务端,一个客户端向服务端发送消息,然后服务端再将消息发送给第二个客户端,都是长连接,第一次发送没问题,但是再点发送第二个客户端就收不到消息了,服务器也收不到(下面服务端代码) 解决方案 通过这个来看的话,你的服务端实际上也就是相当于一个网关的效果,用来转发消息的,这种情况下,如果你服务端都没收到消息的话,你可以自己调试看看是否两者之间的连接已经断开 或者说两者之间的数据包解包不正确导致没处理你的流程. 解决方案二: java