ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2022-06-03 12:32:36  阅读:160  来源: 互联网

标签:java socket 编程 System 网络 客户端 println 基础知识 out


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

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

     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

 

四、总结说明

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

标签:java,socket,编程,System,网络,客户端,println,基础知识,out
来源: https://www.cnblogs.com/penguin1024/p/16339815.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有