socket传输乱码,JAVA乱码

  socket传输乱码,JAVA乱码

  

  java socket乱码

  解决方法:

  首先在服务端使用类指定客户端的输入流为utf-8编码,以及使用类指定输出流为utf-8编码;

  然后在客户端同样的设置utf-8编码即可。

  in=新缓冲读取器(新输入流读取器(套接字。getinputstream(), UTF-8 );

  out=新的缓冲编写器(新的输出流编写器(套接字。获取输出流(), UTF-8 );示例:

  Server:

  导入Java。io。*;

  导入Java。网。*;

  公共类SocketServerEx1 {

  公共静态void main(String args[]) {

  系统。出去。println(服务器);

  服务器套接字服务器套接字=空

  套接字客户端套接字=空

  int connects=0;

  尝试{

  服务器套接字=新服务器套接字(82,5);//端口:82,最大链接数:5

  //最多连接10次

  而(连接10) {

  连接;

  System.out.println( -等待连接- );

  客户端套接字=服务器套接字。接受();//等待连接

  System.out.println(第连接次连接);

  服务客户端(客户端套接字);

  }

  服务器套接字。close();

  } catch(IOException ioe) {

  系统。出去。println( Error: ioe );

  }

  }

  公共静态无效服务客户端(套接字客户端)引发IOException {

  System.out.println(已链接);

  InputStreamReader inSR=null

  OutputStreamWriter outSW=null

  尝试{

  //读取数据

  inSR=新的InputStreamReader(客户端。getinputstream(), UTF-8 );

  BufferedReader br=新缓冲阅读器(inSR);

  outSW=新输出streamwriter(客户端。获取输出流(), UTF-8 );

  缓冲写入器bw=新缓冲写入器(outSW);

  string str=

  while((str=br.readLine())!=null) {

  str=str.trim()。

  System.out.println(收到客户端消息: str);

  bw.write(已收到信息: str \ r \ n );//向客户端反馈消息,加上分行符以便客户端接收

  bw。flush();

  }

  }最后{

  //System.out.println(清理连接:‘客户端’);

  insr。close();

  outsw。close();

  客户。close();

  }

  System.out.println(已断开);

  }

  }Client:

  导入Java。io。*;

  导入Java。网。*;

  公共类SocketClientEx1 {

  公共静态void main(String[] args) {

  系统。出去。println(“客户端”);

  尝试{

  Socket client Socket=new Socket( localhost ,82);

  系统。出去。println( client 1:客户端套接字);

  数据输入流dataIS=新数据输入流(客户端套接字。getinputstream());

  InputStreamReader inSR=新的InputStreamReader(dataIS,“UTF-8”);

  BufferedReader br=新缓冲阅读器(inSR);

  数据输出流dataOS=新的数据输出流(客户端套接字。获取输出流());

  output streamwriter outSW=新输出streamwriter(dataOS, UTF-8 );

  缓冲写入器bw=新缓冲写入器(outSW);

  //输入信息

  byte bytes[]=新字节[100];

  while(true) {

  系统。出去。println(-);

  系统输入读取(字节);

  字符串str=新字符串(字节);

  str=str.trim()。

  if (str==exit) {

  打破;

  }

  //发送数据

  bw。write(str \ r \ n );//加上分行符,以便服务器按行读取

  bw。flush();

  //接收数据

  while((str=br.readLine())!=null) {

  str=str.trim()。

  System.out.println(服务器回复: str);

  打破;

  }

  }

  insr。close();

  数据是。close();

  数据操作系统。close();

  客户端套接字。close();

  } catch(UnknownHostException uhe){

  系统。出去。println(错误: uhe。getmessage());

  } catch(ConnectException ce) {

  系统。出去。println(错误: ce。getmessage());

  } catch(IOException ioe) {

  系统。出去。println(错误: ioe。getmessage());

  }最后{

  }

  }

  }我们,大量的免费爪哇入门教程,欢迎在线学习!以上就是爪哇岛套接字乱码的详细内容,更多请关注我们其它相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: