Socket乱码

勿视人非 2013-09-02 11:05:49
Socket
我用自己的电脑做服务端,又用自己的电脑做客户端。为什么在客户端输入的信息在服务端显示出来是乱码呢?新手刚学到这个,实在解决不了了!
代码:
package day06;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;

public class ServerTest04 {
private ServerSocket server;

public ServerTest04() {
try {
server = new ServerSocket(8088);
} catch (IOException e) {
e.printStackTrace();
}
}

public void start() {
System.out.println("等待连接……");
try {
Socket socket = server.accept();
System.out.println("一个服务器已连接!");
while(true){
InputStream in = socket.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
String str =reader.readLine();
System.out.println(str);
}
} catch (IOException e) {
e.printStackTrace();
}
}

public static void main(String[] args) {
ServerTest04 server = new ServerTest04();
server.start();
}
}




package day06;

import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;

public class ClientTest04 {
private Socket socket;

public ClientTest04() {
try {
socket = new Socket("localhost", 8088);
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}

public void start() {
Scanner scanner = new Scanner(System.in);
OutputStream out;
try {
while(true){
out = socket.getOutputStream();
PrintWriter writer = new PrintWriter(out);
writer.println(scanner.nextLine());
writer.flush();
}
} catch (IOException e) {
e.printStackTrace();
}
}

public static void main(String[] args) {
ClientTest04 client = new ClientTest04();
client.start();
}
}
...全文
186 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
livend 2013-09-09
  • 打赏
  • 举报
回复
是啊,我也可以啊
dong648629778 2013-09-09
  • 打赏
  • 举报
回复
用6楼的方法试试吧。我学的时候也是直接用DataOutputStream,DataInputStream搭配的
小绵羊 2013-09-09
  • 打赏
  • 举报
回复
用DataOutputStream,DataInputStream搭配会省掉很多麻烦
Hamlyn 2013-09-09
  • 打赏
  • 举报
回复
目测是ServerTest04 的字符编码问题
Vurteon 2013-09-07
  • 打赏
  • 举报
回复
你使用的是PrintWriter和BufferedReader,这个默认是按照工程文件的编码方式解码,所以很有可能是你的两个工程文件使用编码不一致出现了问题。
勿视人非 2013-09-07
  • 打赏
  • 举报
回复
我机子上就是乱码啊,编码也改过,就是没有!
st_victory 2013-09-03
  • 打赏
  • 举报
回复
你的代码没问题啊,在我的eclipse中能正常通信哈!!! 是不是你的编码设置有问题
fei1710 2013-09-02
  • 打赏
  • 举报
回复
应该不会是乱码啊

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧