1.客戶端和伺服器的使用的過濾器不一致
例如:
伺服器端:
// 新增編、解碼器
acceptor.getfilterchain().addlast("codec",new protocolcodecfilter(new wsfcodecfactory()));
// 設定處理客戶端訊息的處理類
acceptor.sethandler(new wsfserverhandler());
acceptor.getsessionconfig().setreadbuffersize(1024);
acceptor.getsessionconfig().setidletime(idlestatus.both_idle, 10);
acceptor.bind(new inetsocketaddress(constant.service_tcp_port));
客戶端:
niosocketconnector connector = new niosocketconnector();
connector.getfilterchain().addlast(
"encode",
new protocolcodecfilter(new textlinecodecfactory(charset
.forname("utf-8"), linedelimiter.windows
.getvalue(),
linedelimiter.windows
.getvalue())));
connector.getsessionconfig().setreadbuffersize(2048);
connector.getsessionconfig().setidletime(idlestatus.both_idle, 10);
connector.setconnecttimeoutmillis(30000);
connector.sethandler(new sendmsgclienthandler());
2.解析的規則導致資訊無法被服務端正確解析而無法回傳值
例如:
@override
protected boolean dodecode(iosession session, iobuffer in,
protocoldecoderoutput out) throws exception
// 如果長度小於 16 不予處理:根據需要進行調整
if (bytes.length < constant.protocol_length_without_content)
// 獲取資料長度
short datalength = shortbyte(bytes[1], bytes[2]);
// 獲取命令型別
// 取出資料,1.資料的開頭、結尾要跟協議定義的一致 2.資料的長度要跟定義的一致
logger.info("命令長度:" + datalength + ",命令型別:" + bytes[5]);
if (bytes[0] != constant.protocol_head
|| bytes[bytes.length - 1] != constant.protocol_foot
|| bytes.length != datalength)
// 列印日誌
logger.info(iobuffer.wrap(bytes).gethexdump());
// 構造 訊息物件
wsfmessage message = new wsfmessage();
out.write(message);
return
true;
}
上面**中的
// 如果長度小於 16 不予處理:根據需要進行調整
if (bytes.length
< constant.protocol_length_without_content)
和
if (bytes[0] != constant.protocol_head
|| bytes[bytes.length - 1] != constant.protocol_foot
|| bytes.length != datalength)
會出現客戶端傳送資料伺服器無法正確解析的情況,這些需要注意。 mina的伺服器與客戶端的例子
1 伺服器端 public class minaserver catch ioexception e 2 伺服器的業務邏輯處理 public class minaserverhandler extends iohandleradapter override public void messagere...
DataSnap伺服器如何得到客戶端的IP和埠
作為乙個伺服器軟體,必須做到對客戶端強有力的控制,想要控制,就必須得到客戶端的網路基本資訊,比如客戶端ip和埠。有了客戶端ip就能隨心所欲操控客戶端,比如終止某些客戶端的連線 限制功能等等。在delphi2010中的datasnap伺服器如何獲得客戶端ip,的確花了我點時間,奇怪為什麼這個功能不做的...
SVN客戶端無法連線伺服器的問題
今天特鬱悶,第一天上班就遇到svn無法連線到伺服器的問題 options 無法連線到伺服器 伺服器積極拒絕!no element not found 種種錯誤。開始還以為是svn版本的問題 因為我用的版本是1.7.1最新版 然後就解除安裝了再重灌上了1.6.5版本的,但是結果還是一樣無法連線。然後在...