Java 12网络编程

1.网络编程入门

1.1软件结构

CS结构,全称为Client/Sever结构,是指客户端与服务端的结果,如qq  迅雷

BS结构,全称为Browser/Server结构,是指浏览器和服务端的结构,常见浏览器如谷歌或火狐。

两种架构各有优势,但无论哪种架构,都离不开网络的支持,网络编程也就是在一定的协议下,支持两个计算机的通讯程序。

1.2网络通讯协议

顾名思义,网络通信协议,是指通过计算机网络一遍多台计算机实现连接,位于一个网络中的计算机在连接和通信时需要遵守同一的原则。

重点学习TCP/IP协议。(传输控制协议/因特网互联协议)。它是internet最基本和最广泛的协议,它定义了计算机如何选择入因特网,以及数据如何在他们之间传输的数据,内部包含一些列的用于数据通信的协议,并采用了4层的分层的模型,每一层都呼叫它的下一层所提供的协议完成自己的额需求。

说明:应用层  传输层 网络层 和链路层

链路层,定义物理层传输信道,通常是对某些网络连接社保的驱动协议,例如对光纤,网线提供的驱动

网络层,是整个tcp/ip协议的核心,它主要用于将传输的数据进行分组,将分组的数据发送至目标计算机或者网络。

传输层,主要使用网络程序进行通信,在进行网络通信时, 可以采用TCP协议,也可以采用UDP协议。

应用层,主要负责应用程序的协议,例如HTTP协议,FTP协议。

1.3 网络通信协议的分类,也就是传输层的分类

UDP 用户数据包协议 ,效率高,但是不安全。

面向无连接通信协议,即在数据传输时,数据的发送端和接收端不建议逻辑连接,简单来说,当一台计算机向另一台发送数据时,发送端不会确认接收端是否存在,就会发送数据。比如qq发信息。

UDP特点 数据被限制在64Kb以内,超出就不能发送了

不问目标是否存在,因此可能存在丢失

TCP   传输控制协议  :效率低,但是安全

面向连接的通信协议,即传输数据前,在发送端和接受端进行逻辑连接,它提供了两台计算机之间可靠无差错的数据传输。在TCP连接中,必须要明确客户端和服务器端,由客户端向服务端发起连接请求,每次连接的创建都需要经过三次握手。

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

第二次L服务器向客户端发送一个响应,通知客户端收到了连接请求

第三次,客户端再次向服务端发送确认消息,确认连接,整个交互过程如下图所示。

1.4 网络编程的三要素  协议  IP地址  端口号

协议

也就是之前学习的内容

IP地址

指的是互联网协议地址即 internet Protocol Address,俗称IP,IP地址用来给一个网络中的计算机设备做唯一的编号,假如我们把个人电脑比作一台电脑,那么IP地址相当于电话号码。

IPv4:4个字节的32位的二进制数字,a.b.c.d其中abcd均由10进制数表示,约42亿个。

IPv6:8组16字节的16 进制数组成的128位。

常用命令

查看本机IPI地址 ipconfig

检查网络是否连接 ping 空格 ip地址

特殊IP地址  127.0.0.1 localhost

1、localhost等于127.0.0.1,不过localhost是域名,127.0.0.1是IP地址。

2、localhost和127.0.0.1不需要联网,都是本机访问。

3、本机IP需要联网,本机IP是本机或外部访问, 本机 IP 就是本机对外放开访问的IP地址,这个网址就是与物理网卡绑定的IP地址。

端口号

端口号是逻辑端口,是无法直接知道的,是通过网络软件货值的,一旦软件打开,操作系统将给与软件随机分配一个端口号。

端口号是由两个字节组成。0-65535之间

1 1024之前的端口号不可以用

2 网络软件的端口号不能重复,分配不可重复(理解为门牌号)

3 常用的网络端口号  80 即可  www.baidu.com:80

mysql:3306  oracle:1251   Tomcat服务器:8080

2.TCP的通信程序

TCP通信是指TCP协议进行通信的程序,实现两台计算机的数据交互,通信的两端,要严格区分客户端Client和服务端Server。

2.1两端通信的步骤

  • 服务端程序,需要实现启动,等待客户端的连接
  • 客户端主动连接服务器端,连接成功才能通信,服务端不可以直接连接客户端。

原文地址:https://www.cnblogs.com/rango0550/p/10901529.html

时间: 2024-10-22 04:54:50

Java 12网络编程的相关文章

JAVA的网络编程【转】

网络编程对于很多的初学者来说,都是很向往的一种编程技能,但是很多的初学者却因为很长一段时间无法进入网络编程的大门而放弃了对于该部分技术的学习. 在 学习网络编程以前,很多初学者可能觉得网络编程是比较复杂的系统工程,需要了解很多和网络相关的基础知识,其实这些都不是很必需的.首先来问一个问题:你 会打手机吗?很多人可能说肯定会啊,不就是按按电话号码,拨打电话嘛,很简单的事情啊!其实初学者如果入门网络编程的话也可以做到这么简单! 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作

JAVA的网络编程

网络编程 网络编程对于很多的初学者来说,都是很向往的一种编程技能,但是很多的初学者却因为很长一段时间无法进入网络编程的大门而放弃了对于该部分技术的学习. 在 学习网络编程以前,很多初学者可能觉得网络编程是比较复杂的系统工程,需要了解很多和网络相关的基础知识,其实这些都不是很必需的.首先来问一个问题:你 会打手机吗?很多人可能说肯定会啊,不就是按按电话号码,拨打电话嘛,很简单的事情啊!其实初学者如果入门网络编程的话也可以做到这么简单! 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据.

Java NIO 网络编程基础

Java NIO提供了一套网络api,可以用来处理连接数很多的情况.他的基本思想就是用一个线程来处理多个channel. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899

Java - TCP网络编程

Java - TCP网络编程 Server 逻辑思路: 创建ServerSocket(port),然后服务器的socket就启动了 循环中调用accept(),此方法会堵塞程序,直到发现用户请求,返回用户的socket 利用多线程对用户socket进行IO操作 注意:对Scoket/File进行创建.关闭,都需要放try catch中,检测 IOException,所以将网络IO部分整体放入try catch中即可. 1. 字符串操作 输出:PrintWriter out=new PrintWr

java io 网络编程 高性能NIO

很久没写了,一是觉得这后台不怎么方便,二是 写的时候突然觉得没兴趣了. 还好,今天突然想记一下,那就随便写吧.  1.一开始还是放几个连接.  什么是 同步,异步,阻塞,非阻塞 : http://blog.csdn.net/historyasamirror/article/details/5778378        从Jetty.Tomcat和Mina中提炼NIO构架网络服务器的经典模式:http://blog.csdn.net/cutesource/article/details/61920

Java Socket 网络编程心跳设计概念

Java Socket 网络编程心跳设计概念 1.一般是用来判断对方(设备,进程或其它网元)是否正常动行,一 般采用定时发送简单的通讯包,如果在指定时间段内未收到对方响应,则判断对方已经当掉.用于检测TCP的异常断开.一般是用来判断对方(设备,进程或其它 网元)是否正常动行,一般采用定时发送简单的通讯包,如果在指定时间段内未收到对方响应,则判断对方已经当掉.用于检测TCP的异常断开.基本原因是服务 器端不能有效的判断客户端是否在线也就是说,服务器无法区分客户端是长时间在空闲,还是已经掉线的情况.

java 中网络编程

网络编程 IP地址: 主机在网络中的逻辑地址 Port: 标定主机中的进程 一个进程绑定一个端口 协议: 网络双方约定的通信标准 应用 表示 应用 HTTP FTP TELNET 会话 传输 传输 网络 网络 寻址和路由 数据链路 网络接口 TCP/IP 物理 传输 TCP 传输控制协议 连接 安全可靠 UDP 用户数据报协议 无连接 不可靠 Socket 套接字 java 中网络编程

IT十八掌Java基础 网络编程

网络编程 计算机网络 是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统. 网络编程 就是用来实现网络互连的不同计算机上运行的程序间可以进行数据交换. A:有人说,20世纪最伟大的发明不是计算机,而是计算机网络. 还有人说,如果你买了计算机而没有联网,就等于买了电话机而没有接电话线一样. 网络模型 计算机网络之间以何种规则进行通信,就是网络模型研究问题. 网络模型一般是指 O

Java API —— 网络编程

1.网络编程概述 1)网络编程概述 · 计算机网络 是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统. · 网络编程 就是用来实现网络互连的不同计算机上运行的程序间可以进行数据交换. 2)网络模型 · 计算机网络之间以何种规则进行通信,就是网络模型研究问题. · 网络模型一般是指 · OSI(Open System Interconnection开放系统互连)参考模型 ·