W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
現(xiàn)在我們已經(jīng)編寫出我們第一個服務(wù)端,我們需要測試一下他是否真的可以運(yùn)行。最簡單的測試方法是用 telnet 命令。例如,你可以在命令行上輸入telnet localhost 8080
或者其他類型參數(shù)。
然而我們能說這個服務(wù)端是正常運(yùn)行了嗎?事實上我們也不知道,因為他是一個 discard 服務(wù),你根本不可能得到任何的響應(yīng)。為了證明他仍然是在正常工作的,讓我們修改服務(wù)端的程序來打印出他到底接收到了什么。
我們已經(jīng)知道 channelRead() 方法是在數(shù)據(jù)被接收的時候調(diào)用。讓我們放一些代碼到 DiscardServerHandler 類的 channelRead() 方法。
@Override
public void channelRead(ChannelHandlerContext ctx, Object msg) {
ByteBuf in = (ByteBuf) msg;
try {
while (in.isReadable()) { // (1)
System.out.print((char) in.readByte());
System.out.flush();
}
} finally {
ReferenceCountUtil.release(msg); // (2)
}
}
1.這個低效的循環(huán)事實上可以簡化為:System.out.println(in.toString(io.netty.util.CharsetUtil.US_ASCII))
2.或者,你可以在這里調(diào)用 in.release()。
如果你再次運(yùn)行 telnet 命令,你將會看到服務(wù)端打印出了他所接收到的消息。
完整的discard server代碼放在了io.netty.example.discard包下面。
譯者注:翻譯版本的項目源碼見 https://github.com/waylau/netty-4-user-guide-demos 中的com.waylau.netty.demo.discard
包下
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: