码迷,mamicode.com
首页 > 编程语言 > 详细

Java基础知识强化之网络编程笔记06:TCP之TCP协议发送数据 和 接收数据

时间:2015-10-07 22:41:20      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:

1. TCP协议发送数据 和 接收数据

TCP协议接收数据:
 创建接收端的Socket对象
 监听客户端连接。返回一个对应的Socket对象
 获取输入流,读取数据显示在控制台
 释放资源

 

TCP协议发送数据:

 创建发送端的Socket对象
 这一步如果成功,就说明连接已经建立成功了。
 获取输出流,写数据
• 释放资源

 

2. 代码实现:

(1)发送端:

 1 package cn.itcast_06;
 2 
 3 import java.io.IOException;
 4 import java.io.OutputStream;
 5 import java.net.Socket;
 6 
 7 /*
 8  * TCP协议发送数据:
 9  * A:创建发送端的Socket对象
10  *         这一步如果成功,就说明连接已经建立成功了11  * B:获取输出流,写数据
12  * C:释放资源
13  * 
14  * 连接被拒绝。TCP协议一定要先开服务器15  * java.net.ConnectException: Connection refused: connect
16  */
17 public class ClientDemo {
18     public static void main(String[] args) throws IOException {
19         // 创建发送端的Socket对象
20         // Socket(InetAddress address, int port)
21         // Socket(String host, int port)
22         // Socket s = new Socket(InetAddress.getByName("192.168.12.92"), 8888);
23         Socket s = new Socket("192.168.12.92", 8888);
24 
25         // 获取输出流,写数据
26         // public OutputStream getOutputStream()
27         OutputStream os = s.getOutputStream();
28         os.write("hello,tcp,我来了".getBytes());
29 
30         // 释放资源
31         s.close();
32     }
33 }

 

(2)接收端:

 1 package cn.itcast_06;
 2 
 3 import java.io.IOException;
 4 import java.io.InputStream;
 5 import java.net.ServerSocket;
 6 import java.net.Socket;
 7 
 8 /*
 9  * TCP协议接收数据:
10  * A:创建接收端的Socket对象
11  * B:监听客户端连接。返回一个对应的Socket对象
12  * C:获取输入流,读取数据显示在控制台
13  * D:释放资源
14  */
15 public class ServerDemo {
16     public static void main(String[] args) throws IOException {
17         // 创建接收端的Socket对象
18         // ServerSocket(int port)
19         ServerSocket ss = new ServerSocket(8888);
20 
21         // 监听客户端连接。返回一个对应的Socket对象
22         // public Socket accept()
23         Socket s = ss.accept(); // 侦听并接受到此套接字的连接。此方法在连接传入之前一直阻塞。
24 
25         // 获取输入流,读取数据显示在控制台
26         InputStream is = s.getInputStream();
27 
28         byte[] bys = new byte[1024];
29         int len = is.read(bys); // 阻塞式方法
30         String str = new String(bys, 0, len);
31 
32         String ip = s.getInetAddress().getHostAddress();
33 
34         System.out.println(ip + "---" + str);
35 
36         // 释放资源
37         s.close();
38         // ss.close(); //这个不应该关闭
39     }
40 }

运行效果,如下:

Java基础知识强化之网络编程笔记06:TCP之TCP协议发送数据 和 接收数据

标签:

原文地址:http://www.cnblogs.com/hebao0514/p/4859616.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!