网络编程

本文聚焦网络编程,先介绍网络相关概念,包括网络分类、IP、端口和传输协议(TCP、UDP)等知识。接着阐述使用Socket实现网络应用程序,分析了B/S和C/S两种应用程序架构的优缺点,涵盖网站、小程序、QQ、微信等典型应用。

网络编程

目标

1.理解网络相关概念

网络概念

计算机网络:多个计算机之间通过专业的设备进行连接,形成一个网络。每一个计算机都是一个网络节点,可以互相进行信息的传递。

网络分类

局域网(LAN)
城域网(MAN)
广域网(WAN)
互联网
无线网

网络通信

IP

在网络中,每台计算机都需要遵守IP协议产生一个唯一的上网标识。
IP(internet Protocol)

IPV4:由4个8位的二进制组成。10001101.10001101
不方便记忆,转换为十进制表示,最大的范围:o-255.

IPV6:基本上可以满足全世界的地址要求。

查看本机的IP地址:ipconfig.
测试网络联通:ping 要连接的IP地址

域名:www.jingdong.com
DNS (Domain NAME System)域名系统
他会在系统内准备一份域名和对应机器IP的映射表
特殊IP:127.0.0.1 = = locallhost 本机的回环地址 可以表示本机

访问一个域名时:

1.查找浏览器是否有缓存映射
2.查找本机的hosts
3.前往网络服务提供的域名系统

端口

每个程序运行时都会占用一个端口,它是唯一的
我们如果想通过某个程序在网络内进行信息交流,必须要知道对方的IP和程序端口号。
端口范围:0-65535
IP:端口号
例如:127.0.0.1:8080
HTTP默认端口是80

传输协议

网络模型中传输层的协议。
TCP:传输控制协议
三次握手 面向连接的传输协议,适用于传输重要的,对安全要求比较高的信息,下载文件,聊天,传输资料
为了保证维护连接可靠,效率较低

UDP:用户数据报协议
面向无连接的传输协议,适用于传输不太重要的信息。视频聊天,看视频
效率较高

2.使用Sochet实现网络应用程序

应用程序的架构

B/S(Browser浏览器/Server服务器)

基于浏览器为客户端的网络应用程序。
典型:网站,小程序

优点:
1.无需下载安装,只要有浏览器就可以访问。
2.服务器更新,用户几乎无感知,刷新浏览器就可以得到最新内容。
3.因为只需要有浏览器,所以在平台层面的兼容性就可以忽略了。

缺点:
1.因为所有的资源都在服务器上,所以在传输信息过程中受到带宽影响比较大。
2.在画面渲染和安全验证方面,受限严重。
3.因为资源请求是同步请求,所以用户体验很差。

C/S(Client客户端/Server服务器)

基于自身定制的客户端的网络应用。
典型:QQ,微信,APP,端游,手游

优点:
1.因为大多数普通资源都放在了客户端,所以在传输信息只需要加载一些重要信息即可,受到带宽影响较小。
2.在画面渲染和安全验证方面,比较强,实现也比较容易。
3.因为信息加载只需要加载重要信息,所以体验较好。

缺点:
1.必须安装客户端才能使用。
2.如果服务器更新,必须重新下载客户端。(省流更新/补丁更新)
3.不同的平台必须适配不同的版本。

Socket介绍

	插座,孔,也被称作“套接字”
基于TCP
基于UDP
根据原作 https://pan.quark.cn/s/459657bcfd45 的源码改编 Classic-ML-Methods-Algo 引言 建立这个项目,是为了梳理和总结传统机器学习(Machine Learning)方法(methods)或者算法(algo),和各位同仁相互学习交流. 现在的深度学习本质上来自于传统的神经网络模型,很大程度上是传统机器学习的延续,同时也在不少时候需要结合传统方法来实现. 任何机器学习方法基本的流程结构都是通用的;使用的评价方法也基本通用;使用的一些数学知识也是通用的. 本文在梳理传统机器学习方法算法的同时也会顺便补充这些流程,数学上的知识以供参考. 机器学习 机器学习是人工智能(Artificial Intelligence)的一个分支,也是实现人工智能最重要的手段.区别于传统的基于规则(rule-based)的算法,机器学习可以从数据中获取知识,从而实现规定的任务[Ian Goodfellow and Yoshua Bengio and Aaron Courville的Deep Learning].这些知识可以分为四种: 总结(summarization) 预测(prediction) 估(estimation) 假想验证(hypothesis testing) 机器学习主要关心的是预测[Varian在Big Data : New Tricks for Econometrics],预测的可以是连续性的输出变量,分,聚或者物品之间的有趣关联. 机器学习分 根据数据配置(setting,是否有标签,可以是连续的也可以是离散的)和任务目标,我们可以将机器学习方法分为四种: 无监督(unsupervised) 训练数据没有给定...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值