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-网络编程(基础知识篇)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26Mybatis官方生成器资料详解与应用教程
- 2024-11-26Mybatis一级缓存资料详解与实战教程
- 2024-11-26Mybatis一级缓存资料详解:新手快速入门
- 2024-11-26SpringBoot3+JDK17搭建后端资料详尽教程
- 2024-11-26Springboot单体架构搭建资料:新手入门教程
- 2024-11-26Springboot单体架构搭建资料详解与实战教程
- 2024-11-26Springboot框架资料:新手入门教程
- 2024-11-26Springboot企业级开发资料入门教程
- 2024-11-26SpringBoot企业级开发资料详解与实战教程
- 2024-11-26Springboot微服务资料:新手入门全攻略