1-网络编程(基础知识篇)

2022/6/4 1:22:25

本文主要是介绍1-网络编程(基础知识篇),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

网  络:两台或多台设备通过一定物理设备连接起来构成网络。

     根据网络的覆盖范围大小不同分为:局域网、城域网、广域网

     java.net 包下提供了一系列 接口 / 类,供开发者使用,来实现网络通信功能。 

 

网络通信:  就是两台设备之间通过网络作为介质来实现数据传输。

ip地址:是IP协议提供的一种统一的地址格式。它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。
    即,是标识网络中某一台计算机的唯一标识。

    组成:= 网络地址 + 主机地址(每个IP地址包括两个标识码(ID),即网络ID和主机ID;同一个物理网络上的所有主机都使用同一个网络ID,网络上的一个主机有一个主机ID与其对应。)

 

 

端口号:用于标识计算机上某个特定的网络程序。

 

 网络协议:数据的组织形式就是协议。协议的价值:能够准确无误地将数据发送到目的地

 

一个字节 0-255

IPV4 4个字节

IPV6 16个字节 使用十六进制表示。16进制中 2位就代表2个字节

 

无线局域网适配器 WLAN:

以太网适配器 VMware Network Adapter VMnet1:

 

TCP/IP协议

UDP协议

 

 


【编程题目1】

一、需求:

  1.编写一个服务器端,和一个客户端;

  2.服务器端在9999端口监听;

  3.客户端连接到服务器端,发送“hello,server“到服务端,然后退出。

  4.服务器端接收到客户端发送的信息,输出,并退出。

 

二、分析

  

 

 

三、代码实现

ServiceV1.java 服务端程序

 1 package com.penguin.tomcat;
 2 
 3 import java.io.IOException;
 4 import java.io.InputStream;
 5 import java.net.ServerSocket;
 6 import java.net.Socket;
 7 
 8 public class ServiceV1 {
 9     public static void main(String[] args) throws IOException {
10 
11         System.out.println("服务端程序已启动.........");
12 
13         // 创建绑定到9999端口的【服务器套接字对象】
14         ServerSocket serverSocket = new ServerSocket(9999);
15         System.out.println("服务端正在监听9999端口........");
16 
17         // 监听并接受此套接字的【连接】。注意:此方法在连接传入之前会一直处于阻塞状态。
18         // Socket —— 套接字是两台机器间通信的端点。客户端和服务端各有一个套接字。
19         Socket socket = serverSocket.accept();
20         System.out.println("服务端socket的hashcode值 = " + socket.hashCode());
21 
22 
23         // 返回此套接字的输入流。
24         InputStream inputStream = socket.getInputStream();
25 
26         System.out.println("--------------接收客户端发生的的内容--------------");
27 
28         byte[] bytes = new byte[1024];
29         int readLen = 0;
30         // 循环读取
31         while ((readLen = inputStream.read(bytes)) != -1) {
32             String str = new String(bytes, 0, readLen);
33             System.out.println(str);
34         }
35         System.out.println("------------------------------------------");
36         // 关闭资源
37         inputStream.close();
38         socket.close();
39         serverSocket.close();
40         System.out.println("服务端退出..........");
41     }
42 
43 }
View Code

ClientV1.java 客户端程序

 1 package com.penguin.tomcat;
 2 
 3 import java.io.IOException;
 4 import java.io.OutputStream;
 5 import java.net.InetAddress;
 6 import java.net.Socket;
 7 
 8 public class ClientV1 {
 9     public static void main(String[] args) throws IOException {
10 
11         System.out.println("客户端程序运行.......");
12 
13         // 创建一个流套接字,并将其连接到指定IP地址的指定端口号:连接到本机的9999端口程序
14         Socket socket = new Socket(InetAddress.getLocalHost(),9999);
15         System.out.println("客户端socket的hashcode值 = "+socket.hashCode());
16 
17         // 套接字获取输出流
18         OutputStream outputStream = socket.getOutputStream();
19 
20         System.out.println("客户端向服务器发送内容............");
21         // 输出一个简单的字符串
22         outputStream.write("Hello !!!".getBytes());
23         System.out.println("客户端向服务器发送内容完毕............");
24         // 关闭资源
25         outputStream.close();
26         socket.close();
27         System.out.println("客户端退出..........");
28     }
29 }
View Code

 

四、总结说明

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 



这篇关于1-网络编程(基础知识篇)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程