1
我需要通過字節緩衝區傳輸2個整數和一個字符串。然後通過bytebuffer接收另一個字符串。通過字節緩衝區傳輸字符串
必須是這樣的: 從keyboard.Enter讀取x(int)。從keyboard.Enter中讀取y(int)。從鍵盤讀取字符串。輸入。所有的價值都去了,正在處理,我必須收到字符串。全部通過套接字通道完成。
我做了這樣的事情: SEND
Scanner scanner=new Scanner(System.in);
int m,n;
String str,result;
System.out.println("x=");
m=scanner.nextInt();
System.out.println("y=");
n=scanner.nextInt();
System.out.println("String: ");
str=scanner.next();
ByteBuffer bb=ByteBuffer.allocate(100);
bb.putInt(0,m).putInt(8,n).put(str.getBytes()); // problem?
try{
sc.write(bb);
bb.clear();
sc.read(bb);
CharBuffer cbuf = bb.asCharBuffer();
result=cbuf.toString();
System.out.println("Result : "+result);
得到:
ByteBuffer bb = ByteBuffer.allocate(100);
socketChannel.read(bb);
int m=bb.getInt(0);
int n=bb.getInt(8);
String str=bb.toString().substring(16);
App app=new App();
String result=app.longestRepeatingSubstring(str,m,n);
bb.clear();
bb.put(result.getBytes());
socketChannel.write(bb);
socketChannel.close();
但是我收到一個空字符串...
或者如果我直接就把BB。 toString()我收到類似這樣的東西: java.nio.HeapByteBuffer [pos = 237 lim = 258 cap = 798]