在開發Socket平臺才發現我對網絡編程是這么的無知。下面會記錄一下在開發過程中碰到的一些問題。以及解決方案。
問題1:字符問題
在socket的傳送都是用字符進行傳輸,C在字符這方面不會存在太大問題,但Java就不同了,因為在Java中,存在String中的char通常都是以雙字節儲存。當將Java的String轉化為byte[]時就有問題了,之前一個字符轉后會在前面多了一個空格。由于使用的是NIO的channel通訊。而不是常用的Stream,而且如果全部轉化為byte進行處理,在Java開發又會很不方便。所以這個問題想了很多辦法都解決不了。
解決辦法:終于在一個開源框架(jniosocket2)中我找到了解決辦法。下面是發送的代碼:


















這個方法就能夠正確把由于String轉化多出來的空格給去掉。