网络通信概述

简介: 网络通信概述

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

软件结构: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();


相关文章
|
2月前
|
网络协议 网络安全 网络性能优化
【计算机网络概述】第一章:概论 1.2什么是网络边缘
【计算机网络概述】第一章:概论 1.2什么是网络边缘
|
3月前
|
网络协议 算法 Java
【Java网络编程】网络编程概述、UDP通信(DatagramPacket 与 DatagramSocket)
【Java网络编程】网络编程概述、UDP通信(DatagramPacket 与 DatagramSocket)
54 3
|
1天前
|
存储 网络协议 安全
|
12天前
|
数据采集 移动开发 Python
六:《智慧的网络爬虫》— 正则表达式概述
【8月更文挑战第7天】本文介绍了正则表达式的基本概念、用途,如表单验证和爬虫,以及Python中re模块的使用,包括match(),match()函数、元字符、预定义字符集、重复匹配、位置匹配、非贪婪模式和re模块的常用方法如compile(),search(),findall(),split(),sub()等。
34 1
六:《智慧的网络爬虫》— 正则表达式概述
|
5天前
|
存储 NoSQL MongoDB
八:《智慧的网络爬虫》— MongoDB概述
【8月更文挑战第14天】本篇文章简单介绍了MongoDB的下载和安装以;其基本的操作语法,并附上每个语法的代码示例,为后续的爬虫学习打下基础
14 0
八:《智慧的网络爬虫》— MongoDB概述
|
8天前
|
SQL 数据采集 关系型数据库
七:《智慧的网络爬虫》— MySQL概述
【8月更文挑战第11天】本篇文章详细的介绍了MySQL数据库的安装与使用;并讲述了MySQL的基本操作及其应用语法
17 0
七:《智慧的网络爬虫》— MySQL概述
|
12天前
|
Linux 调度 Docker
容器网络概述
【8月更文挑战第7天】容器就是 Container,而 Container 的另一个意思是集装箱。其实容器的思想就是要变成软件交付的集装箱。集装箱的特点,一是打包,二是标准。
|
2月前
|
数据采集 前端开发 开发者
《智慧的网络爬虫》— CSS概述
CSS主要作用是定义网页的样式。如网页元素的位置、大小、颜色等,也是前端及爬虫入门必须要学习的内容
36 7
《智慧的网络爬虫》—  CSS概述
|
7天前
|
存储 网络协议 安全
第一章 计算机网络概述
第一章 计算机网络概述
16 0
|
2月前
|
数据采集 移动开发 前端开发
《智慧的网络爬虫》— HTML概述
网页是构成网站的基本元素,它是一个包含HTML标签的纯文本文件,通常是由图片;链接;视频;声音;文字等元素组成。通常我们所看到的网页,常以 .htm 或 .html 后缀结尾的文件,因此将其俗称为HTML文件。HTML;CSS;JS是学习爬虫的基础,是必须要了解的,此篇文章我讲述了HTML5对于爬虫所要必备的基础知识
28 1
《智慧的网络爬虫》—  HTML概述