使用java实现socket,中文乱码 ,试了utf-8.gbk 依然没有效果
//客户端
public class SocketClient {
public static void main(String[] args) throws IOException {
//创建客户端,并连接服务器
Socket socket = new Socket("127.0.0.1", 4007);
System.out.println("客户端启动成功");
//获取控制台输入流
InputStreamReader inputStreamReader = new InputStreamReader(System.in, "GBK");
BufferedReader out = new BufferedReader(inputStreamReader);
//通过socket输出流创建write推送功能对象
PrintWriter pw = new PrintWriter(socket.getOutputStream());
while (true) {
//等待控制台不为空的输入流
String str = out.readLine();
if ("".equals(str)) {
break;
}
//通过socket对象将字符串推送到服务器
pw.println(str);
//立刻刷新推送功能对象
pw.flush();
} // 继续循环
pw.close(); // 关闭Socket输出流
socket.close(); // 关闭Socket
}
}
//服务端
public static void main(String[] args) throws IOException {
//创建服务器
ServerSocket server = new ServerSocket(4007);
System.out.println("服务器启动成功");
//等待客户端连接后,接收客户端socket
Socket socket = server.accept();
//获取客户端socket的输入流
InputStreamReader inputStreamReader = new InputStreamReader(socket.getInputStream(), "GBK");
BufferedReader in = new BufferedReader(inputStreamReader);
while (true) {
//等待客户端socket的不为空输入流
String str = in.readLine();
if (str == null) {
break;
}
System.out.println("客户端说:" + str);
}
in.close(); //关闭Socket输入流
socket.close(); //关闭Socket
server.close(); //关闭ServerSocket
}