IDEA2023.1.3破解,IDEA破解,IDEA 2023.1破解,最新IDEA激活码

网络编程

IDEA2023.1.3破解,IDEA破解,IDEA 2023.1破解,最新IDEA激活码

一、网络的七层模型

从下往上依次是物理层(电路,布线)-数据链路层(交换机)-网络层(tcp/ip,路由器)-传输层-会话层-表示层(编码,解码,加密,解密,压缩,解压缩)-应用层(http),但是tcp/ip模型是网络接口层-网络层-传输层-应用层

二、三次握手和四次挥手

1、 三次握手:

(1) 客户端向网络服务器端发送请求 (你在吗?)

(2) 服务器端回应客户端的请求 (我在)

(3) 服务器端向客户端发送请求 (我在,你在吗?)

2、 四次挥手

(1) 客户端向服务器端发送请求 (我要离开了)

(2) 服务器端回应客户端 (嗯)

(3) 客户端再次向服务器端发出请求 (我真的要离开了)

(4) 服务器端回应客户端 (嗯,走好)

三、常用的InetAddress的主要函数

 package com.study.test;

 import java.io.IOException;
 import java.net.InetAddress;

 public class NetTest {

     public static void main(String[] args) throws IOException {
         InetAddress ia = InetAddress.getLocalHost();
         System.out.println(ia.getHostName());// 获得本机名字
         System.out.println(InetAddress.getByName(ia.getHostName()));// 通过名字查询到ip地址
         byte[] b = new byte[4];
         b = ia.getAddress();// 以字节的形式存放的地址
         System.out.println(ia.getHostAddress());// 以字符串形式列出的ip地址

     }

 }

输出结果:

xx
xx/192.168.152.1
192、168.152.1

四、tcp编程服务端与客户端通讯

1、 服务端代码

 package com.study.test;

 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.OutputStream;
 import java.net.ServerSocket;
 import java.net.Socket;
 import java.util.Scanner;

 /**
  * 编程实现tcp通讯服务端
  * 
  * @author THINKPAD
  *
  */
 public class NetServer {

     public static void main(String[] args) throws IOException {
         // 1 建立服务端socket
         ServerSocket ss = new ServerSocket(60000);// 1、有效没有指明ip地址,则本网卡对应的所有ip地址全部
         // 通信的时候一定要有目标端口号,如果没有,则补救bind
         // ServerSocket ss=new ServerSocket();
         // SocketAddress sa=new InetSocketAddress(60000);
         // ss.bind(sa);
         // 2 进行接收连接
         Socket s = ss.accept(); // 阻塞等待,等待三次握手 1 syn 2 ack syn 3 ack ,一旦握手成功,形成一个通道
         System.out.println(s.getPort() + "连接进来了"); // 如果tcp每次发送信息,对方一定要确认收到的,这样可以保证数据不丢失

         while (true) {
             // 3 接收传送的信息,通过网络流/节点流
             InputStream is = s.getInputStream();
             InputStreamReader isr = new InputStreamReader(is);
             char[] cArray = new char[20];
             int iRead = isr.read(cArray);// 阻塞函数,一定要接收到数据 比如:in.read()一定要从键盘缓冲区获得数据,而这个等待是一定要从服务器获得数据
             if (iRead == -1)
                 break;
             System.out.println("得到的字节数:" + iRead);// 返回字节数
             System.out.println("收到的信息是" + new String(cArray, 0, iRead));
             // 3.1 回复信息
             OutputStream os = s.getOutputStream();
             Scanner sc = new Scanner(System.in);
             String sSend = sc.nextLine();
             os.write(sSend.getBytes());
         }
         // 4 关闭 结束之后就会发生4次挥手 1 fin ack 2 ack 3 fin ack 4 ack
         ss.close();
         s.close();

     }

 }

2、 客户端代码

 package com.study.test;

 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.OutputStream;
 import java.net.Socket;
 import java.util.Scanner;

 /**
  * 编程实现tcp通讯的客户端
  * 
  * @author THINKPAD
  *
  */
 public class NetClient {
     public static void main(String[] args) throws IOException {
         // 1 建立客户端socket ,建立一个通道
         Socket s = new Socket("192.168.152.1", 60000);
         while (true) {
             // 2.1 先发送信息
             OutputStream os = s.getOutputStream();
             Scanner sc = new Scanner(System.in);
             String sSend = sc.nextLine();
             os.write(sSend.getBytes());

             // 2.2 接收传送的信息,通过网络流/节点流
             InputStream is = s.getInputStream();
             InputStreamReader isr = new InputStreamReader(is);
             char[] cArray = new char[20];
             int iRead = isr.read(cArray);// 阻塞函数,一定要接收到数据 比如:in.read()一定要从键盘缓冲区获得数据,而这个等待是一定要从服务器获得数据
             if (iRead == -1)
                 break;
             System.out.println("得到的字节数:" + iRead);// 返回字节数
             System.out.println("收到的信息是" + new String(cArray, 0, iRead));
         }
         // 3 关闭 结束之后就会发生4次挥手 1 fin ack 2 ack 3 fin ack 4 ack
         s.close();

     }

 }

文章永久链接:https://tech.souyunku.com/?p=14487


Warning: A non-numeric value encountered in /data/wangzhan/tech.souyunku.com.wp/wp-content/themes/dux/functions-theme.php on line 1154
赞(88) 打赏



未经允许不得转载:搜云库技术团队 » 网络编程

IDEA2023.1.3破解,IDEA破解,IDEA 2023.1破解,最新IDEA激活码
IDEA2023.1.3破解,IDEA破解,IDEA 2023.1破解,最新IDEA激活码

评论 抢沙发

大前端WP主题 更专业 更方便

联系我们联系我们

觉得文章有用就打赏一下文章作者

微信扫一扫打赏

微信扫一扫打赏


Fatal error: Uncaught Exception: Cache directory not writable. Comet Cache needs this directory please: `/data/wangzhan/tech.souyunku.com.wp/wp-content/cache/comet-cache/cache/https/tech-souyunku-com/index.q`. Set permissions to `755` or higher; `777` might be needed in some cases. in /data/wangzhan/tech.souyunku.com.wp/wp-content/plugins/comet-cache/src/includes/traits/Ac/ObUtils.php:367 Stack trace: #0 [internal function]: WebSharks\CometCache\Classes\AdvancedCache->outputBufferCallbackHandler() #1 /data/wangzhan/tech.souyunku.com.wp/wp-includes/functions.php(5109): ob_end_flush() #2 /data/wangzhan/tech.souyunku.com.wp/wp-includes/class-wp-hook.php(303): wp_ob_end_flush_all() #3 /data/wangzhan/tech.souyunku.com.wp/wp-includes/class-wp-hook.php(327): WP_Hook->apply_filters() #4 /data/wangzhan/tech.souyunku.com.wp/wp-includes/plugin.php(470): WP_Hook->do_action() #5 /data/wangzhan/tech.souyunku.com.wp/wp-includes/load.php(1097): do_action() #6 [internal function]: shutdown_action_hook() #7 {main} thrown in /data/wangzhan/tech.souyunku.com.wp/wp-content/plugins/comet-cache/src/includes/traits/Ac/ObUtils.php on line 367