1. 程式人生 > >java socket直接訪問netty伺服器中資料接收不全的問題

java socket直接訪問netty伺服器中資料接收不全的問題

在專案中,通過netty框架搭建的伺服器。但是在Android端我想直接採用Socket與伺服器通訊。但是在這個過程中遇到兩個問題。

1.伺服器接收不到資料

解決方法:我傳送的形式是直接將字串轉成位元組流,按照tcp協議進行傳送的。一開始伺服器能看到客戶端接入了,但是就是收不到訊息。後來在字串的末尾加上了'\n'換行符就行了。

2.伺服器傳送資料時,客戶端接收的資料是一串奇怪的字串。例如:[@Bd31d456

解決方法:在伺服器傳送資料時,一開始是直接ctx.writeAndFlush(s.getbyte()),後來改了很多的編碼設定之類的都沒起作用。後來在一個知乎的回答裡面看到按這樣的方式ctx.writeAndFlush(Unpooled.copiedBuffer(s.getBytes()))傳送,就可以正常接收了。

對於netty的使用不是很熟悉,只是按照視訊裡的步驟粗略的寫了一下,所以遇到問題就一直不知道怎麼解決。