是这样的,我写了一个服务器是专门用来接数据的,差不多有30个客户端,客户端全是C++写的,我只负责服务器的开发,现在接发数据基本上正常,但是还是有问题。问题如下:
1.客户端与服务器是长连接的,1秒给服务器一条数据如果30秒内没有往服务器发送数据服务器会自动把客户端断开,问题是客户端发送数据很正常的时候就莫名其妙的断开了,我服务器这边没有捕获到任何我自己打印的异常
2.服务器会每30秒向各个客户端回复一条确认消息,回复是很正常,但是回复的消息本来应该回复给A的,却莫名其妙的给了B。
3.客户端发送的数据过长的时候,比如有4000多个字节,服务器读消息有的读的消息是对的,有的读着读着就读成空字符了,比如:
A123|4101|15386|……省略N个字符|1|……此处省略的全是空字符|,用编辑器打开就是口子型的乱码 (4010表示消息长度)这个问题困扰了我2个多月了,一直找不到问题的关键所在,到底是客户端的问题还是我服务器的问题,我也编写了客户端做过测试了,我自己编写的客户端只有问题2存在希望有经验的大手门指点指点,到底是哪里的问题。
进一步解决问题可以联系我,,拜托!!
1.客户端与服务器是长连接的,1秒给服务器一条数据如果30秒内没有往服务器发送数据服务器会自动把客户端断开,问题是客户端发送数据很正常的时候就莫名其妙的断开了,我服务器这边没有捕获到任何我自己打印的异常
2.服务器会每30秒向各个客户端回复一条确认消息,回复是很正常,但是回复的消息本来应该回复给A的,却莫名其妙的给了B。
3.客户端发送的数据过长的时候,比如有4000多个字节,服务器读消息有的读的消息是对的,有的读着读着就读成空字符了,比如:
A123|4101|15386|……省略N个字符|1|……此处省略的全是空字符|,用编辑器打开就是口子型的乱码 (4010表示消息长度)这个问题困扰了我2个多月了,一直找不到问题的关键所在,到底是客户端的问题还是我服务器的问题,我也编写了客户端做过测试了,我自己编写的客户端只有问题2存在希望有经验的大手门指点指点,到底是哪里的问题。
进一步解决问题可以联系我,,拜托!!
解决方案 »
- hibernate奇怪的问题?
- 求助一道软件题 谢谢解答
- java语音识别
- myeclipse启动tomcat抱Caused by: java.lang.OutOfMemory
- java 对xml文件的修改
- jsper 报表单元格字体颜色设置
- 大家看看server.xml里面下面这一段是起什么作业的?
- 高分求救:axis2 client请求
- <html:hidden property="id" />
- 在jndi上配置了数据源,通过InitialContext得到的数据源可以缓存吗,详见内容
- 大家给推荐几本关于lucene或者Cassandra方面的书籍。
- Jboss 打不开,不知道咋回事啊,求高手
public static String getString(byte[] b, int offset)
{
int i;
for(i = 0; i < (b.length - offset); i +=2)
{
if((b[offset+i] == 0)&&(b[offset+i+1] == 0))
break;
}
byte[] bTemp = new byte[i];
Arrays.fill(bTemp, (byte) 0);
System.arraycopy(b, offset, bTemp, 0, i);
Charset cs = Charset.forName ("UTF-16LE");
ByteBuffer bb = ByteBuffer.allocate(bTemp.length);
bb.put(bTemp);
bb.flip();
CharBuffer cb = cs.decode(bb);
return cb.toString();
}
如果不是这个问题那就可能是读输入流的问题。
你说发给A的消息被B接收了,具体我不清楚,但是我觉得消息包头应该有一个人员的标志位,即使B接收到了但是当B解析到消息不是发给他的,那也没必要读消息