网络通信概述

简介: 网络通信概述

网络编程是在一定的协议下实现两台计算机通信的程序

软件结构:C/S结构 客户端服务器结构

B/S结构 浏览器服务器结构

网络通信协议:

TCP/IP协议:最广泛的协议,它定义计算机如何进入因特网以及数据如何在他们之间传输

先建立链接,每次链接都经过三次握手

第一次:客户端向服务器发出链接请求等待服务器确认

第二次:服务器向客户端回送一个响应,通知客户端收到链接请求

第三次:客户端再次向服务器发送确认信息,确认链接

UDP:无连接的通信 效率高,容易丢包,传的文件不超过64kb

网络编程三要素(协议 IP地址 端口号)

常用命令

ipconfig 查看本机IP地址信息

ping空格IP地址 检查网络是否链接

常用端口号:

80端口 网络端口

数据库端口号 mysql 3306 oracle 1521

在java中提供了两个类用于实现TCP通信程序

客户端: Socket 创建Socket对象,向服务端打出链接请求,服务端响应之后,两者建立链接

此类实现客户端套接字 套接字:包含端口号和IP地址的网络单位

构造方法:

Socket(String host,int port) 创建一个流套接字并将其连接到指定主机上的指定端口号

参数:

String host 服务器主机的名称/服务器IP地址

int port 服务器端口号

成员方法:

OutputStream getOutputStream() 返回此套接字的输出流

InputStream getInputStream 返回此套接字的输入流

实现步骤

创建一个客户端实现对象Socket 构造方法中绑定服务器的IP地址和端口号

使用Socket对象中的方法getOutputStream() 获取网络对象输出流OutputStream对象

使用网络对象输出流OutputStream对象中的方法write给服务器发送数据

使用Socket对象中的方法getInputStream()获取网络字节输入流InputStream对象

使用网络字节输入流InputStream对象read读取服务器回写的数据

释放资源socket释放

Socket  socket  = new Socket("192.168.0.111",8888);
OutputStream os = socket.getOutputStream();
os.write("你好服务器".getBytes());
InputStream is = socket.getInputStream();
byte[] bytes = new byte[1024];
int len = is.read(bytes);
System.out.println(new String(bytes,0,len));


服务端:ServerSocket 创建ServerSocket对象,相当于开启一个服务等待客户端的链接

ServerSocket 此类实现服务器套接字

构造方法

ServerSocket(int port) 创建绑定端口的服务器1套接字

服务器必须明确一件事情必须得知道是那个客户端请求的服务器所以可以使用ServerSocket方法获取请求道的请求客户端对象Socket

成员方法

Socket accept() 倾听并接受到此套接字的链接

服务器实现步骤:

创建服务器ServerSocket对象和系统指定的端口号

使用ServerSocket对象中的方法accept,获取到请求的客户端对象Socket

使用Socket对象中的方法getInputStream()获取网络字节输出流InpurStream对象

使用网络字节输出流InpurStream对象中的方法read读取客户端发送的数据

使用Socket对象中的方法getOutStream()获取网络字节输出流OutputStream对象

使用网络字节输出流OutputStream对象中的方法write给客户端回写数据

释放资源

ServerSocket server = new ServerSocket(8888);
Socket socket = server.accept();
InputStream is = socket.getInputStream();
byte[] bytes = new byte[1024];
int len = is.read(bytes);
System.out.println(new String(bytes,0,len));
OutputStream os = socket.getOutputStream();
os.write("收到谢谢".getBytes());
socket.close();
server.close();


相关文章
|
25天前
|
机器学习/深度学习 运维 安全
图神经网络在欺诈检测与蛋白质功能预测中的应用概述
金融交易网络与蛋白质结构的共同特点是它们无法通过简单的欧几里得空间模型来准确描述,而是需要复杂的图结构来捕捉实体间的交互模式。传统深度学习方法在处理这类数据时效果不佳,图神经网络(GNNs)因此成为解决此类问题的关键技术。GNNs通过消息传递机制,能有效提取图结构中的深层特征,适用于欺诈检测和蛋白质功能预测等复杂网络建模任务。
50 2
图神经网络在欺诈检测与蛋白质功能预测中的应用概述
|
19天前
|
SQL 存储 安全
网络安全与信息安全概述####
本文探讨了网络安全(Cybersecurity)和信息安全(Information Security)的基本概念及其差异,重点介绍了网络安全漏洞、加密技术及安全意识在信息保护中的重要性。本文旨在通过深入分析这些关键技术和策略,提升对信息安全整体性的理解,帮助读者在数字化时代更好地应对信息安全挑战。 ####
|
6月前
|
网络协议 网络安全 网络性能优化
【计算机网络概述】第一章:概论 1.2什么是网络边缘
【计算机网络概述】第一章:概论 1.2什么是网络边缘
|
2月前
|
机器学习/深度学习 存储 自然语言处理
深度学习入门:循环神经网络------RNN概述,词嵌入层,循环网络层及案例实践!(万字详解!)
深度学习入门:循环神经网络------RNN概述,词嵌入层,循环网络层及案例实践!(万字详解!)
|
2月前
|
机器学习/深度学习 PyTorch API
深度学习入门:卷积神经网络 | CNN概述,图像基础知识,卷积层,池化层(超详解!!!)
深度学习入门:卷积神经网络 | CNN概述,图像基础知识,卷积层,池化层(超详解!!!)
|
4月前
|
存储 网络协议 安全
|
4月前
|
数据采集 移动开发 Python
六:《智慧的网络爬虫》— 正则表达式概述
【8月更文挑战第7天】本文介绍了正则表达式的基本概念、用途,如表单验证和爬虫,以及Python中re模块的使用,包括match(),match()函数、元字符、预定义字符集、重复匹配、位置匹配、非贪婪模式和re模块的常用方法如compile(),search(),findall(),split(),sub()等。
76 1
六:《智慧的网络爬虫》— 正则表达式概述
|
3月前
|
Linux 调度 Docker
容器网络概述
【9月更文挑战第9天】容器技术利用如命名空间(namespace)和控制组(cgroup)等技术创建隔离环境,实现资源限制与独立运行。命名空间避免命名冲突,cgroup则能对CPU、内存等资源进行限制。容器状态可通过镜像保存并标准化,确保在任何环境中都能复现相同状态。
|
4月前
|
存储 NoSQL MongoDB
八:《智慧的网络爬虫》— MongoDB概述
【8月更文挑战第14天】本篇文章简单介绍了MongoDB的下载和安装以;其基本的操作语法,并附上每个语法的代码示例,为后续的爬虫学习打下基础
51 0
八:《智慧的网络爬虫》— MongoDB概述
|
4月前
|
SQL 数据采集 关系型数据库
七:《智慧的网络爬虫》— MySQL概述
【8月更文挑战第11天】本篇文章详细的介绍了MySQL数据库的安装与使用;并讲述了MySQL的基本操作及其应用语法
55 0
七:《智慧的网络爬虫》— MySQL概述