一、 网络模型

    应用层   -----     HTTP协议 

    传输层   -----     TCP协议

    网络层   -----       IP协议

    链路层   -----     以太网协议

  二、什么是socket  

    socket是一种

  三、Upd协议与Tcp协议的区别

  四、Upd协议下的服务端与客户端的demo

 

 1 import java.io.IOException;
2 import java.net.DatagramPacket;
3 import java.net.DatagramSocket;
4 import java.net.InetAddress;
5 //Upd服务端
6 class UpdService{
7
8 public static void main(String[] args) throws IOException {
9 System.out.println("upd协议服务端已启动...");
10 //创建端口号 默认ip地址是本机
11 DatagramSocket ds = new DatagramSocket(8080);
12 byte[] buf = new byte[1024];
13 //数据包
14 DatagramPacket dp = new DatagramPacket(buf, 0, buf.length);
15 //会发生阻塞 等待客户端发送请求
16 ds.receive(dp);
17 System.out.println("来源:" + dp.getAddress() + " 端口" + dp.getPort());
18 System.out.println("接受来自客户端的数据:" + new String(dp.getData(), 0, dp.getLength()));
19 ds.close();
20 }
21
22 }
23
24 //Upd客户端
25 public class UpdClient {
26 public static void main(String[] args) throws IOException {
27
28 System.out.println("upd协议客户端开始请求...");
29 DatagramSocket ds = new DatagramSocket();
30 String str = "好好学习, 天天向上" ;
31 byte[] buf = str.getBytes();
32 DatagramPacket dp = new DatagramPacket(buf, buf.length, InetAddress.getByName("127.0.0.1"), 8080);
33 //发送数据包
34 ds.send(dp);
35 ds.close();
36
37 }
38 }

    五、Tcp协议下的服务端与客户端的demo

 1 import java.io.IOException;
2 import java.io.InputStream;
3 import java.io.OutputStream;
4 import java.net.ServerSocket;
5 import java.net.Socket;
6 //tcp协议下的服务端
7 class TcpService{
8 public static void main(String[] args) throws IOException {
9 InputStream inputStream = null;
10 ServerSocket serverSocket = null;
11 try {
12 System.out.println("tcp协议下的服务器启动.....");
13 serverSocket = new ServerSocket(8080);
14 //接受客户端发送过来的数据
15 Socket accept = serverSocket.accept();
16 //获取输入流
17 inputStream = accept.getInputStream();
18 byte[] buf = new byte[1024];
19 inputStream.read(buf, 0, buf.length);
20 System.out.println("客户端请求数据:" + new String(buf, 0, buf.length));
21 //返回给客户端的信息
22 OutputStream outputStream = accept.getOutputStream();
23 outputStream.write("损粗".getBytes());
24 outputStream.close();
25 }finally {
26 inputStream.close();
27 if(!serverSocket.isClosed()) serverSocket.close();
28 }
29 }
30 }
31 //tcp协议下的客户端
32 public class TcpClient {
33 public static void main(String[] args) throws IOException {
34 Socket socket = null;
35 try {
36 System.out.println("tcp协议客户端启动...");
37 socket = new Socket("127.0.0.1", 8080);
38 OutputStream outputStream = socket.getOutputStream();
39 outputStream.write("good good study, day day up!".getBytes());
40 }finally {
41 socket.close();
42 }
43 }
44 }

最新文章

  1. MIUI5(红米、小米)打开开发者模式
  2. struts2 学习记录 过滤器 国际化
  3. Web安全测试之XSS
  4. Hibernate jar包详解
  5. asp.netMVC4(基础知识----传值问题分析)
  6. 安装mysql问题
  7. ubuntu14.04如何卸载qq
  8. [置顶] cocos2d-x 植物大战僵尸(4) 帽子僵尸的产生
  9. 深入浅出Hive企业级架构优化、Hive Sql优化、压缩和分布式缓存(企业Hadoop应用核心产品)
  10. Android项目打包成APK文件
  11. iOS开发之protocol和delegate
  12. ASP.NET-FineUI开发
  13. [Awson原创]修水渠(canal)
  14. 微信小程序navigator
  15. RN 数据持久化存储服务API
  16. 在进行vue的学习,项目中需要引入bootstrap、jquery的步骤。
  17. 《JavaScript 秘密花园》
  18. 浴谷八连测R4题解
  19. Fastcgi_Finish_Request 提高页面响应速度
  20. GOF23设计模式之适配器模式(Adapter)

热门文章

  1. Fluentd部署详解
  2. Java调用C++动态链接库——Jni
  3. SECS半导体设备通讯-1 SECS的基本概念
  4. 文件内再分类到各txt文件
  5. kubernetes Tcp流量可视化
  6. bat批处理命令语法总结
  7. Linux Block模块之IO合并代码解析
  8. LOJ2325「清华集训 2017」小Y和恐怖的奴隶主
  9. 删除数组里含有a的元素,并且将null值放在后面
  10. 齐博x1到底是怎么的存在?