//客户端
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) {
String [] mess =
{"珠穆朗玛峰的高度是多少?","亚洲有多少个国家?","西宁是哪个省的省会?"};
Socket mysocket;
DataInputStream in = null;
DataOutputStream out = null;
try{ mysocket = new Socket("127.0.0.1",2010);
in = new DataInputStream(mysocket.getInputStream());
out = new DataOutputStream(mysocket.getOutputStream());
for(int i=0;i<mess.length;i++){
out.writeUTF(mess[i]);
String s = in.readUTF();
System.out.println("客户收到服务器的回答:"+s);
Thread.sleep(1000);
}
}
catch(Exception e){
System.out.println("服务器已断开"+e);
}
}
}
//服务器端
import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) {
String [] answer = {"峰顶岩石面海拔8844.43米","48个","青海省"};
ServerSocket serverForClient = null;
Socket socketOnServer = null;
DataOutputStream out = null;
DataInputStream in = null;
try{ serverForClient = new ServerSocket(2010);
}
catch (IOException e1){
System.out.println(e1);
}
try{ System.out.println("等待客户呼叫");
socketOnServer = serverForClient.accept();
System.out.println("客户的地址:"+socketOnServer.getInetAddress());
System.out.println("客户的端口:"+socketOnServer.getPort());
out = new DataOutputStream(socketOnServer.getOutputStream());
in = new DataInputStream(socketOnServer.getInputStream());
for (int i=0;i< answer.length;i++){
String s = in.readUTF();
System.out.println("服务器收到客户的提问:"+s);
out.writeUTF(answer[i]);
Thread.sleep(1000);
}
}
catch (Exception e){
System.out.println("客户已断开"+e);
}
}
}
正在学习Java,遇到一个编码的问题,上面这个代码是关于Java网络编程的,我这里使用的是UTF-8编码,运行后出现了一部分乱码,这是怎么回事?
不知道你这个问题是否已经解决, 如果还没有解决的话:在新增或修改文件时,文件的编码格式必须统一。编程领域,文件编码格式必须是UTF-8,不应为了个人方便使用其他编码格式,
如GBK、ASCII等。
可能的原因包括:
InputStreamReader isr = new InputStreamReader(new FileInputStream(file), "UTF-8");
针对问题可能的解决方案包括: