网络编程概述
1 计算机网络:
是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。
2.网络编程
就是用来实现网络互连的不同计算机上运行的程序间可以进行数据交换 如 QQ 微信 陌陌 等即时通讯软件
网络编程之三要素
1IP 地址网络中每一台电脑的唯一标识 通过你的IP地址就能找到你计算机所在的位置
2端口每个程序在设备上的唯一标识用于标识进程的逻辑地址,通过端口找到指定进程
(可以这么理解 ip地址为你家住几栋楼 端口号为你家具体的门牌号)
3协议定义通信规则,符合协议则可以通信,不符合不能通信
详解IP地址
每个设备在网络中的唯一标识
每台网络终端在网络中都有一个独立的地址,我们在网络中传输数据就是使用这个地址。
ipconfig:查看本机IP192.168.88.217 (Win键+X+R 输入CMD )
ping: 对联网环境的检测 测试连接192.168.50.12(www.baidu.com 也行) 看与他人是否连接上
本地回路地址:127.0.0.1
255.255.255.255是广播地址
IPv4:4个字节组成,4个0-255。大概42亿,30亿都在北美,亚洲4亿。2011年初已经用尽。
IPv6:8组,每组4个16进制数。 目前剩余数量基本无限 不用担心用尽
1a2b:0000:aaaa:0000:0000:0000:aabb:1f2f
1a2b::aaaa:0000:0000:0000:aabb:1f2f
1a2b:0000:aaaa::aabb:1f2f
1a2b:0000:aaaa::0000:aabb:1f2f
a2b:0000:aaaa:0000::aabb:1f2f
以上是比较常见的v6地址 正常为8组 但相邻的0000 可以省略成::
详解端口号
每个程序在设备上的唯一标识
每个网络程序都需要绑定一个端口号,传输数据的时候除了确定发到哪台机器上,还要明确发到哪个程序。
端口号范围从0-65535
编写网络应用就需要绑定一个端口号,尽量使用1024以上的,1024以下的基本上都被系统程序占用了。
常用端口:
mysql: 3306
oracle: 1521
web: 80
tomcat: 8080
QQ: 4000
feiQ: 2425
我们可以通过 360的功能大全里面的 流量防火墙查看端口号
端口是可以改变的 但建议使用系统默认的 如果更改可能会造成无法启动
详解协议
为计算机网络中进行数据交换而建立的规则、标准或约定的集合。
UDP
面向无连接(可以理解为发短信 ),数据不安全,速度快。不区分客户端与服务端。
TCP
面向连接(三次握手),数据安全,速度略低。分为客户端和服务端。三次握手: 客户端先向服务端发起请求, 服务 端响应请求, 传输数据(可以这么理解 我要访问百度 必须先跟服务器打个招呼 这是1 服务器接受到了我的请求进行 了响应 这是2 最后进行传输数据 这是3)也可以是 美女: 约吗? 美女回答: 约 最后: 出来见面 同理如果美女说不约 就等于服务端没进行响应 那就GG了
Socket 简单介绍
Socket套接字概述:
网络上具有唯一标识的IP地址和端口号组合在一起才能构成唯一能识别的标识符套接字。
通信的两端都有Socket。
网络通信其实就是Socket间的通信。
数据在两个Socket间通过IO流传输。
Socket在应用程序中创建,通过一种绑定机制与驱动程序建立关系,告诉自己所对应的IP和port。
原理可能有些人会懵逼 用人的话来讲就是 我们的电脑是一座港口socket就是码头IO流就是船船要贸易啊 把货物从一座码头 运到另一座港口的码头货物就等同于我们要传输的数据
网络通信先简单介绍到这 要写好几个章节 先理解下简单的基本概念 感觉讲的挺清晰了 有什么不对的地方 希望指点出来