Java中的网络编程(一)

一、网络编程概述

什么是计算机网络把不同区域的计算机(广义)通过通信设备和线路连接,可以实现数据的传输和共享的系统。实现不同计算机之间的练习,必须有介质连接。网络编程是干什么的聊天-->聊天软件 QQjava语言是支持网络间的数据传输的,将底层的细节都封装起来了,给程序员提供了一套标准的类库,可以很方便的使用java语言开发出进行网络通信的软件
网络编程:借助计算机网络实现我们所写的程序可以在不同的电脑上进行数据传输
网络编程的核心问题如何找到网络世界上的目标主机,以及目标软件win+r -->cmd-->ipconfig 查看自己电脑的ip如何安全可靠的进行数据传输-->协议 规则
网络模型OSI参考模型:理性化标准模型分成七层TCP/IP参考模型实际使用的参考模型实际分为四层:应用层(http)⬇运输层(协议)       ^逐层解析⬇               |网络层(IP)         |⬇               |物理层(硬件、网卡)-->物理层
通信要素:ip 端口 协议ip:IP地址是指互联网协议地址,又译为网际协议地址网络中的计算机使用IP地址来进行唯一标识.在Windows系统下,打开cmd,输入命令ipconfig,按回车即可查看(局域网)连接到服务器,会自动分配ip本地回环地址(hostAddress):127.0.0.1 ,它代表设备的本地虚拟接口端口:0--1024是被系统使用或保留的端口号,0——65535是有效端口号我们在定义的时候需要定义1025——65535之间的端口,端口号不可与已有端口冲突协议(规则、规范、约定):规定传输速率,代码结构,出错后如何应对等等规则传输层的重要协议:传输控制协议TCP:客户端向服务器发送数据前,首先要建立连接(测试网络是否通畅)正是传输数据断开前还要相互确认可靠安全但效率相对低TCP三次握手: 先向服务器发送请求服务器收到请求后会给客户端回应客户段为服务器的回应做确认的回应,告知服务器客户端收到了服务器的回复开始传输数据TCP四次挥手:客户端向服务器发送断开请求服务器向客户端做出回应服务器把没传完的数据传输完毕,再向客户端做出回应客户端向服务器的回应做出回应用户数据报协议UDP:报要发送的数据封装成数据报(数据包)数据报包含数据,对方IP,对方端口,只管发送即可,是否发送成功不明确效率相对高但不可靠,可能会丢数据

二、Tcp传输协议实现

服务端

package com.wbc.Internet.homework.TCP;import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;public class Severs {static Scanner scanner =new Scanner(System.in);public static void main(String[] args) {try {ServerSocket serverSocket =new ServerSocket(1234);//端口号1234System.out.println("服务器创建成功");Socket socket =serverSocket.accept();System.out.println("客户端连接成功");while(true){java.io.DataInputStream inputStream =new DataInputStream(socket.getInputStream());System.out.println("对方正在输入中……");String s =inputStream.readUTF();System.out.println("客户端:"+s);DataOutputStream outputStream =new DataOutputStream(socket.getOutputStream());String s1 =scanner.next();System.out.println("待输入……");outputStream.writeUTF(s1);}} catch (IOException e) {e.printStackTrace();}}
}

客户端

package com.wbc.Internet.homework.TCP;import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.util.Scanner;public class Clients {static Scanner scanner =new Scanner(System.in);public static void main(String[] args) {try {Socket socket =new Socket("127.0.0.1",1234);//本地回环测试System.out.println("客户端连接成功");while(true){DataOutputStream outputStream =new DataOutputStream(socket.getOutputStream());System.out.println("待输入……");String s =scanner.next();outputStream.writeUTF(s);DataInputStream inputStream =new DataInputStream(socket.getInputStream());System.out.println("对方正在输入……");String s1=inputStream.readUTF();System.out.println("服务器:"+s1);}} catch (IOException e) {e.printStackTrace();}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/794150.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从人机界面设计黄金三法则视角看 ChatGPT 的界面设计的“好”与“坏”

热门文章推荐: (1)《为什么很多人工作 3 年 却只有 1 年经验?》(2)《一文掌握大模型提示词技巧:从战略到战术巧》(3)《AI 时代,程序员的出路在何方&#xff1…

数组方法汇总

数组和链表类似,都是用双指针,但数组不需要额外的指针,可以使用索引来当作指针。(链表的时候要注意,什么时候是移动的指针,什么时候是改变的节点)删除有序数组中的重复项 注意,本题中…

C语言经典例题(18) --- 判断字母、三角形判断、衡量人体胖瘦程度、翻转金字塔图案、平均身高

1.判断是不是字母 题目描述: KK想判断输入的字符是不是字母,请帮他编程实现。 输入描述: 多组输入,每一行输入一个字符。 输出描述: 针对每组输入,输出单独占一行,判断输入字符是否为字母,输出内容详见输出样例。 输…

36.基于CAS实现的java类

JUC, java.util.concurrent并发工具包下。 1.原子整数 AtomicInteger AtomicLong AtomicBoolean 底层用的CAS来实现。 AtomicInteger类的incrementAndGet方法,addAndGet方法 public static void main(String[] args) {AtomicInteger atomicInteger new Atom…

突破编程_C++_网络编程(TCPIP 四层模型(网络层(1))

1 网络层概述 TCP/IP 四层模型中的网络层是模型中的核心组成部分,它主要负责处理数据包的路由和转发,确保数据能够在源主机和目标主机之间准确地传输。 一、主要功能 网络层的主要功能是实现数据包的选路和转发。当数据从应用层传输到传输层后&#x…

Coursera自然语言处理专项课程04:Natural Language Processing with Attention Models笔记 Week01

Natural Language Processing with Attention Models Course Certificate 本文是学习这门课 Natural Language Processing with Attention Models的学习笔记,如有侵权,请联系删除。 文章目录 Natural Language Processing with Attention ModelsWeek 01…

c# wpf style 简单试验

1.概要 wpf style 用来控制控件的样式 2.代码 <Window x:Class"WpfApp2.Window5"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d"http://schemas.…

MCAL SPI配置

用的是Qspi0 SpiDriver 要配置 4个选项 Spichannel SpiExternalDevice SpiJob SpiSequence Mcu 模块配置 dma配置

数组分割

题目 问题描述 小蓝有一个长度为 N 的数组 A [A0, A1, . . .&#xff0c;AN−1]。现在小蓝想要从 A 对应的数组下标所构成的集合 I {0, 1, 2, . . . , N − 1} 中找出一个子集 R1&#xff0c;那么 R1在 I 中的补集为 R2。记 S1 ∑ r ∈ R1 Ar&#xff0c;S2 ∑ r ∈ R2 Ar…

职场迷航?MBTI测试为你指明方向,找到最匹配的职业!

MBTI简介 MBTI的全名是Myers-Briggs Type Indicator。它是一种迫选型、自我报告式的性格评估工具&#xff0c;用以衡量和描述人们在获取信息、作出决策、对待生活等方面的心理活动规律和性格类型。 类型指标 美国的凯恩琳布里格斯和她的女儿伊莎贝尔布里格斯迈尔斯研制了迈尔…

归类一些vim的插件,需要时来看

本文结构&#xff1a; a、简介 b、一些插件名称及简要介绍 a、之前我一篇文章说了在vim中安装了一个可以自动补全")",">"等符号的插件autopairs,里面也有详细的安装及配置步骤。基于有些小伙伴想要了解些别的vim插件和自己有时候可能会有些灵感想要写…

开发环境->生产环境

1、数据迁移 不涉及docker # 以数据库用户导出数据 mysqldump -h 192.168.1.168 -P 3307 -u abragent -pabragebb17 abragent > abragent.sql# 以root用户导出数据 mysqldump -h 192.168.1.168 -P 3307 -u root -p8d3Ba1b abragent > abragent.sql 涉及docker …

递归算法练习

递归算法是所有算法中较难的一种&#xff0c;依靠他代码的简洁和清晰地逻辑很受人们喜欢&#xff0c;但是新手入门递归还是会被他不同寻常的思路吓到&#xff0c;其实面对递归问题我们只需要看清题目&#xff0c;分析出要求&#xff0c;有清晰的解题思路&#xff0c;只要仔细分…

十九、Rust Tcp Rpc 示例

前一篇&#xff0c;我们演示了 rust grpc 的应用&#xff0c;但 grpc 是基于 http 的&#xff0c;按理说其协议更重&#xff0c;同时也确见到网友验证过&#xff0c;相比 http 的 rpc&#xff0c;tpc 下的 rpc 性能确实更有优势。 同时&#xff0c;不同于 grpc 要编写一份 “中…

系统分析师-综合知识-应用数学与经济管理

系统分析师-综合知识-应用数学与经济管理 更多软考资料 https://ruankao.blog.csdn.net/ 文章目录 系统分析师-综合知识-应用数学与经济管理概述最小生成树真题-给出图真题-给出表 最短路径关键路径关键路径基本关键路径升级 网络与最大流量指派问题最小解最大解 线性规划决策…

软考--软件设计师(软件工程总结2)

目录 1.测试方法 2.软件项目管理 3.软件容错技术 4.软件复杂性度量 5.结构化分析方法&#xff08;一种面向数据流的开发方法&#xff09; 6.数据流图 1.测试方法 软件测试&#xff1a;静态测试&#xff08;被测程序采用人工检测&#xff0c;计算机辅助静态分析的手段&…

虚拟机打不开

问题 另一个程序已锁定文件的一部分&#xff0c;进程无法访问 打不开磁盘“G:\centeros\hadoop104kl\hadoop100-cl2.vmdk”或它所依赖的某个快照磁盘。 模块“Disk”启动失败。 未能启动虚拟机。 原因 前一次非正常关闭虚拟机导致.lck 文件是VMWare软件的一种磁盘锁文件&…

蓝桥杯算法题:外卖店优先级

“饱了么”外卖系统中维护着 N 家外卖店&#xff0c;编号 1∼N。每家外卖店都有一个优先级&#xff0c;初始时 (0时刻) 优先级都为 0。每经过 1个时间单位&#xff0c;如果外卖店没有订单&#xff0c;则优先级会减少 1&#xff0c;最低减到 0&#xff1b;而如果外卖店有订单&am…

特定领域软件体系结构

1.DSSA的定义 简单地说&#xff0c;DSSA&#xff08;Domain Specific Software Architecture&#xff09;就是在一个特定应用领域中为一组应用提供组织结构参考的标准软件体系结构。 从功能覆盖的范围的角度有两种理解DSSA中领域的含义的方式&#xff1a; &#xff08;1&#x…

使用Python写简单的点云高斯滤波

一、代码 Python import numpy as np import open3d as o3ddef apply_gaussian_filter(pcd, k=30, sigma=1.0):"""对点云应用高斯滤波。参数:pcd (open3d.geometry.PointCloud): 输入的点云。k (int): 每个点的邻居数量。sigma (float): 高斯核的标准差。返回…