本帖最后由 彭波 于 2013-4-7 17:58 编辑
- /*
- 客户端
- 通过查阅socket对象,发现在该对象建立时,就可以去连接
- 指定主机。
- 因为tcp是面向连接的,所以在建立socket服务时,就要有服务
- 端存在,并连接成功,形成通路后,在该通道进行数据的传输。
- 需求:给服务端发送一个文本数据
- 步骤:
- 1,创建socket服务,并指定要连接的主机和端口。
- */
- import java.io.*;
- import java.net.*;
- class TcpClient
- {
- public static void main(String[] args)throws Exception
- {
- //创建客户端的socket服务,指定目的主机和端口
- Socket s = new Socket("144.98.252.251", 10003);
-
- //为了发送数据,应该获取socket流中的输出流
- OutputStream out = s.getOutputStream();
-
- out.write("我来了".getBytes()); //变成字节数据写入
-
- s.close();
- }
- }
- /*
- 需求:定义端点接收数据并打印在控制台上
- 服务端:
- 1,建立服务端的socket服务,ServerSocket();
- 并监听一个端口
- 2,获取连接过来的客户端对象。
- 通过ServerSocket的accept方法,没有连接就会等,
- 所以这个方法是阻塞式的
- 3,客户端如果发过来数据,那么服务端要使用对应的客
- 户端对象,并获取到该客户端对象的读取流来读取发
- 过来的数据。
- 4,关闭服务端(可选操作)
- */
- class TcpServer
- {
- public static void main(String[] args)throws Exception
- {
- //建立服务端的socket服务,并监听一个端口
- ServerSocket ss = new ServerSocket(10003);
-
- //通过accept方法获取连接过来的客户端对象
- Socket s = ss.accept();
-
- String ip = s.getInetAddress().getHostAddress();
- System.out.println(ip+"...connected");
-
- //获取客户端发送过来的数据,那么要使用客户端对象
- //的读取流来读取数据
- InputStream in = s.getInputStream();
-
- byte[] buf = new byte[1024];
- int len = in.read(buf);
-
- System.out.println(new String(buf, 0, len)); //变成字符输出
-
- s.close();//关闭客户端
- ss.close();
- }
- }
复制代码 代码好好的,今天下午复习时候发现连接不了,端口没有被占用,我电脑都重启了,ip都修改到当前的了,哪个地方出了问题,我也不知道
问题详细描述:开启两个命令行
(1)
开启服务端,
(2)
开启客户端,但是服务端没有收到信息,过了一会,就报错了,ip都没有连上
怎么回事啊,听课时写的代码当时明明没有问题,今天怎么都连接不上了
坐等大神???????
|
|