import java.net.InetSocketAddress;
import java.net.Socket;
import java.nio.*;
import java.nio.channels.SocketChannel;
import java.nio.charset.Charset;
public class MyClientNew {
private Charset charset = Charset.forName("gb2312");
public static void main(String[] args) {
MyClientNew c = new MyClientNew();
c.postData("1422222222222222");
} public String decode(ByteBuffer buffer){ //解码
CharBuffer charBuffer = charset.decode(buffer);
return charBuffer.toString();
} public ByteBuffer encode(String str){ //编码
return charset.encode(str);
}
public String postData(String clientData) {
ByteBuffer recvbuf = ByteBuffer.allocate(10);
ByteBuffer sendbuf = ByteBuffer.allocate(40);
InetSocketAddress isa = new InetSocketAddress("192.168.1.117",6666);
SocketChannel sc = null;
try {
sc = SocketChannel.open();
sc.connect(isa);
//sendbuf.flip();
sendbuf = encode("中文kkkkkk22333");
sc.write(sendbuf);
sendbuf.compact();
sc.read(recvbuf);
recvbuf.flip();
String receiveData = decode(recvbuf);
System.out.println(new String(receiveData.getBytes("gb2312"),"UTF-8"));
//System.out.println(receiveData);
} catch (Exception ex) {
ex.printStackTrace();
} finally {
}
return clientData; }
}
这是我java socket client , socket server也在windows下执行。我将client放到linux下跑时乱码
System.out.println(new String(receiveData.getBytes("gb2312"),"UTF-8"));
这样转换以下也不行。
解决方案 »
- 基于struts+hibernate请教分页问题
- 在线等.各位大大,真心求教,在做项目,JAVA 如何去操作BLOB的类型
- jstl显示二维数组的问题
- jsp 分页问题
- USECASE问题
- 急急急!!!怎么写一个webservice 用servlet调用
- 怎么使用FileOutputStream在指定位置写入文件?
- 紧急请教:web service如何接受自定义的类对象作为参数?
- 有人知道 怎么用jtable显示 表格内数据的合计或者列数吗?像dbgrid中合计行那样的,或者其他的解决方案 100分
- 询问两个较为偏的问题,急求高手解答
- 批量上传文件的问题
- 有配置过iplanet的ssl的么?指导指导?
假如socket server 也放在linux下,那我是不是只用执行一下这句话
private Charset charset = Charset.forName("utf-8"); 不用在进行字符转换了把