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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 彭波 于 2013-4-7 17:58 编辑
  1. /*
  2. 客户端
  3. 通过查阅socket对象,发现在该对象建立时,就可以去连接
  4. 指定主机。
  5. 因为tcp是面向连接的,所以在建立socket服务时,就要有服务
  6. 端存在,并连接成功,形成通路后,在该通道进行数据的传输。

  7. 需求:给服务端发送一个文本数据

  8. 步骤:
  9. 1,创建socket服务,并指定要连接的主机和端口。
  10. */
  11. import java.io.*;
  12. import java.net.*;
  13. class TcpClient
  14. {
  15.         public static void main(String[] args)throws Exception
  16.         {
  17.                 //创建客户端的socket服务,指定目的主机和端口
  18.                 Socket s = new Socket("144.98.252.251", 10003);
  19.                
  20.                 //为了发送数据,应该获取socket流中的输出流
  21.                 OutputStream out = s.getOutputStream();
  22.                
  23.                 out.write("我来了".getBytes()); //变成字节数据写入
  24.                
  25.                 s.close();
  26.         }
  27. }
  28. /*
  29. 需求:定义端点接收数据并打印在控制台上

  30. 服务端:
  31. 1,建立服务端的socket服务,ServerSocket();
  32.          并监听一个端口
  33. 2,获取连接过来的客户端对象。
  34.          通过ServerSocket的accept方法,没有连接就会等,
  35.          所以这个方法是阻塞式的
  36. 3,客户端如果发过来数据,那么服务端要使用对应的客
  37.          户端对象,并获取到该客户端对象的读取流来读取发
  38.          过来的数据。
  39. 4,关闭服务端(可选操作)
  40. */
  41. class TcpServer
  42. {
  43.         public static void main(String[] args)throws Exception
  44.         {
  45.                 //建立服务端的socket服务,并监听一个端口
  46.                 ServerSocket ss = new ServerSocket(10003);
  47.                
  48.                 //通过accept方法获取连接过来的客户端对象
  49.                 Socket s = ss.accept();
  50.                
  51.                 String ip = s.getInetAddress().getHostAddress();
  52.                 System.out.println(ip+"...connected");
  53.                
  54.                 //获取客户端发送过来的数据,那么要使用客户端对象
  55.                 //的读取流来读取数据
  56.                 InputStream in = s.getInputStream();
  57.                
  58.                 byte[] buf = new byte[1024];
  59.                 int len = in.read(buf);
  60.                
  61.                 System.out.println(new String(buf, 0, len)); //变成字符输出
  62.                
  63.                 s.close();//关闭客户端
  64.                 ss.close();
  65.         }        
  66. }
复制代码
代码好好的,今天下午复习时候发现连接不了,端口没有被占用,我电脑都重启了,ip都修改到当前的了,哪个地方出了问题,我也不知道
问题详细描述:开启两个命令行
(1) 开启服务端,
(2) 开启客户端,但是服务端没有收到信息,过了一会,就报错了,ip都没有连上
怎么回事啊,听课时写的代码当时明明没有问题,今天怎么都连接不上了
坐等大神???????


3 个回复

倒序浏览

我电脑的ip地址
回复 使用道具 举报
彭波 发表于 2013-4-7 16:40
我电脑的ip地址

你写成144.98.252.251了
回复 使用道具 举报
直接的解决办法 你把IP写成127.0.0.1 如果测试没问题
就是你Ip地址变了,你在用InetAddress这个类,调用getHostAddress()看看你的IP地址是多少
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马