A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© SelonLiao 中级黑马   /  2014-11-9 16:25  /  1058 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我写了服务端和客户端, 可是不明白,为什么服务端接收到数据后打印出来的内容会多出好几个小框框

请大家看看我的代码,分析一下是什么原因

这是服务端代码

  1. package netTest;

  2. import java.io.InputStream;
  3. import java.net.ServerSocket;
  4. import java.net.Socket;

  5. public class Server {

  6.         //1、建立服务端的socket服务,ServerSocket()
  7.         //2、获取连接过来的客户端对象
  8.         //  通过ServerSocket的accept方法,没有连接就会等
  9.         //3、客户端如果发过来数据,那么服务端要使用对应的客户对象,并获取 到该
  10.         //客户端对象的读取流来读取发过来的数据,并打印在控制台
  11.         //4、关闭客户端
  12.         //5、关闭服务器, 该步骤可选
  13.         public static void main(String[] args) throws Exception {
  14.                 //建立服务端socket服务,并监听一个端口
  15.                 ServerSocket ss = new ServerSocket(10003);

  16.                 //通过accept方法获取连接过来的客户端对象
  17.                 Socket s = ss.accept();
  18.                 String ip = s.getInetAddress().getHostAddress();
  19.                 System.out.println(ip+"is connected");
  20.                 //获取客户端发送过来的数据,那么要使用客户端对象的读取流读取数据
  21.                 InputStream in = s.getInputStream();
  22.                
  23.                 byte[] buf = new byte[1024];
  24.                 int len = in.read(buf);
  25.                
  26.                 System.out.println(new String(buf,0,buf.length));
  27.                
  28.                 s.close();  //关闭客户端
  29.                 ss.close();
  30.                 System.out.println("接收完毕");
  31.         }
  32. }
复制代码

这是客户端代码
  1. package netTest;

  2. import java.io.OutputStream;
  3. import java.net.Socket;
  4. /*
  5. * 客户端:
  6. * 通过查阅Socket对象,发现在该对象建立时,就可以去连接指定主机
  7. * 因为tcp是面向连接的,所以在建立socket服务时,
  8. * 就要有服务端存在,并连接成功,形成通路后,在该通道进行数据的传输
  9. */
  10. public class Client {

  11.         public static void main(String[] args) throws Exception {
  12.                 //创建客户端的Socket服务,指定目的主机和端口
  13.                 Socket s = new Socket("192.168.30.88",10003);
  14.                 //为了发送数据,应该获取socket流中的输出流
  15.                 OutputStream out = s.getOutputStream();
  16.                 //向服务器发送数据
  17.                 out.write("tcp is come on".getBytes());
  18.                 //关闭socket
  19.                 s.close();
  20.         }
  21. }
复制代码




评分

参与人数 1黑马币 +1 收起 理由
杨佳名 + 1

查看全部评分

1 个回复

倒序浏览
我运行了下好着呢,是不是工程的编码设置的问题,你看看吧。我用的是GBK的编码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马