クラス プロジェクトの一部としてチャット クライアントとサーバーを構築していますが、解決できない問題が 1 つあります。byte[]
テキストは、特定のケースに応じて、固定サイズ (32 または 64 バイト)の形式で渡す必要があります。
メソッドで文字列を変更するbyte[]
と、.getBytes()
文字列の長さが空の四角形で埋められます。これは、輸送中および受領中は問題ありませんが、ある時点で、文字列を元の形式に変更する必要があります (現在new String(byte[])
、空の四角形を使用して削除します。
これを行う良い方法が見つからないようです。助言がありますか?
関連するコード ビット クライアント側:
byte[] bigDataByte = new byte[64];
sendData[2] = (bigDataByte = message.getBytes())
for (int i = 0; i < sendData.length; i++){
if (sendData[i] != null){
DatagramPacket sendPacket = new DatagramPacket(sendData[i], sendData[i].length, IPAddress, clientPort);
clientSocket.send(sendPacket);
}
}
関連するコード ビット サーバー側:
String name = new String(getBytes(32));
private static byte[] getBytes(int size) throws IOException {
byte[] dataByte = new byte[size];
DatagramPacket dataPacket = new DatagramPacket(dataByte, dataByte.length);
servSocket.receive(dataPacket);
return dataPacket.getData();
}