1.线程的同步机制(重点)1.1 基本概念 当多个线程同时访问同一种共享资源时可能会造成数据的覆盖和不一致等问题,此时就需要对线程之间进行协调和通信,该方式就叫线程的同步机制. 如: 2003年左右 银行卡业务 存折 对应同一个账户 1.2 解决方案 由程序结果可知:当两个线程同时进行取款操作时,会导致最终的账户余额不正确. 引发原因:线程一还没有完成取款操作时,线程二就已经开始执行. 解决方案:等线程一执行完毕取款后再执行线程二,将线程的并发操作修改为串行操作即可 带来问题:多线程串行执行会造…
1.网络编程的常识 目前主流的网络通讯软件有:微信.QQ.YY.陌陌.探探.飞信.阿里旺旺.... 在吗? 1.1 七层网络模型(熟悉) 为了保证数据传递的可靠安全等等,ISO(国际标准委员会组织)将数据的传递从逻辑上划分为以下七层: 应用层.表示层.会话层.传输层.网络层.数据链路层.物理层. 在发送数据之前要按照上述七层协议从上到下一层一层进行加包处理,再发送出去; 在接收数据之后要按照上述七层协议从下到上一层一层进行拆包处理,再解析出来: 1.2 常用的协议(熟悉) http协议 - 超文…
###############    网络编程    ############## """ 网络编程 学习了Python基础之后,包括函数,面向对象等,你就可以开发了,你不会就去找这个模块怎么用,就行了, 现在两个电脑上的程序要通信,才产生了网络,比如qq聊天 ############################### cs架构和bs架构 程序架构有cs架构和bs架构,本质都是两个程序之间的通信, cs架构是c是客户端,s是服务端,服务端要一直运行,等待服务,客户端是我需…
1.基于tcp协议的编程模型(重中之重)1.1 编程模型服务器: (1)创建ServerSocket类型的对象,并提供端口号: (2)等待客户端的连接请求,调用accept()方法: (3)使用输入输出流进行通信: (4)关闭Socket并释放有关的资源: 客户端: (1)创建Socket类型的对象,并提供服务器的IP地址和端口号: (2)使用输入输出流进行通信: (3)关闭Socket并释放有关的资源: 1.2 相关类和方法的解析(1)ServerSocket类 java.net.Server…
来源:http://mprc.pku.edu.cn/mentors/training/TrainingCourses/material/ShellProgramming.HTM#_Toc37518085    TOC \o "1-4" \h \z Shell脚本编程的常识... PAGEREF _Toc37518060 \h 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000D0000005F0054006F0063003300370…
TCP协议可以说已经是IT人耳熟能详的协议,最近在学习socket网络编程时后重新温习一下这个协议,针对一些问题做了一些总结,很多理解可能还不是很准确. 1. 协议是什么?所谓的各种网络协议无非是一种通信标准,就好象两个人要说话,那么我们首先得规定一种语言,是中文还是英文,这样大家才能在接下来的交流中进行顺利的沟通.至于标准的实现是和代码操作系统无关的,具体从逻辑上怎么实现这个协议就是自己操作了,只要遵守协议标准,大家就能顺利的进行通信/交流. 2. 为什么会有协议分层?OSI有七层协议(实际通…
设计概述 服务端通信组件的设计是一项非常严谨的工作,其中性能.伸缩性和稳定性是必须考虑的硬性质量指标,若要把组件设计为通用组件提供给多种已知或未知的上层应用使用,则设计的难度更会大大增加,通用性.可用性和灵活性必须考虑在内. 现以一个基于 IOCP 的通用异步 Windows Socket TCP 服务端组件为例子,讲述其设计与实现相关的问题,希望能引发大家的思考,对大家日后开展相关类似工作时有所帮助.关于通用性.可用性.Socket 模型选型以及接口模型的设计等问题已经在本座前段时间发表的<通…
开源基于asio的网络通信框架asio2,支持TCP,UDP,HTTP,RPC,SSL,跨平台,支持可靠UDP,支持TCP自动拆包,TCP数据报模式等 C++开发网络通信程序时用asio是个不错的选择,但asio本身是一套函数集,自己还要处理诸如“通信线程池管理.连接及生命周期管理.多线程收发数据的同步保护等”.因此这里对asio进行了一层封装,大大简化了对asio的使用.代码使用了C++17相关功能,所以只能用在C++17以上. 其中http和websocket部分用的是boost::beas…
基于.NET平台和C#语言实现TCP NAT穿越        1.<C# WinForm 跨线程访问控件(实用简洁写法)>       2.<基于.NET环境,C#语言 实现 TCP NAT>       3.<基于Tcp穿越的Windows远程桌面(远程桌面管理工具)> 宗旨: 虽然已经实现基于.NET平台和C#语言实现TCP NAT穿越,但本文并不免费提供相关源代码及实现.本文旨在向那些正在努力实现穿越的开发者们,分享我在整个开发过程中的失败教训以及成功经验.整个…
网络的发展 网络的发展有下面几个阶段: 独立模式:计算机最开始是以单机模式被广泛使用的.每一台计算机都是独立的,之间不能够进行数据共享与通信 网络互联: 计算机之间可以链接在一起,完成数据共享,计算机之间还可以进行相互通信 局域网(LAN): 一片区域内的计算机通过路由器和交换机连接在一起,可以用来相互通信的计算机数量增多 广域网(WAN): 多个局域网通过路由器连接起来,构成一个广域网,也可以说是一个更大的局域网 "广域网"和"局域网"是一个相对的概念,例如:一座…
一.网络的演进: 1.简单的联接:1960's ------------ 1970's    Host Network 六十至七十年代,网络的概念主要是主机架构的低速串行联接,提供应用程序执行.远程打印和数据服务功能. 2.网络化联接:1970's-------------1980's     Local Network 七十至八十年代,出现了以个人电脑为主的商业计算模式.最初,个人电脑是独立的设备,由于认识到商业计算的复杂性,局域网产生了.局域网的出现,大大降低了商业用户打印机和磁盘昂贵的费用…
13.OSI七层模型各层分别有哪些协议及它们的功能 在互联网中实际使用的是TCP/IP参考模型.实际存在的协议主要包括在:物理层.数据链路层.网络层.传输层和应用层.各协议也分别对应这5个层次而已. 要找出7个层次所对应的各协议,恐怕会话层和表示层的协议难找到啊.. [1]物理层:主要定义物理设备标准,如网线的接口类型.光纤的接口类型.各种传输介质的传输速率等.它的主要作用是传输比特流(就是由1.0转化为电流强弱来进行传输,到达目的地后在转化为1.0,也就是我们常说的数模转换与模数转换),这一层…
网络 网络的本质就是通讯,比特传输 网络拓扑 物理布局pc -- 交换机 -- 路由器逻辑布局pc -- 路由器 交换机的产生 网络之初,是通过网线互相连通到各个主机,存在的问题就是2个pc都要与服务器相连接,网络无法分辨先处理谁,这就导致了冲突,这个典型就是hub,所有的口是一个冲突域,开始的时候我们引入csma/cd技术,也就是a发送信息,就会提醒b,我们a在连通发送数据,你先等等. 交换机 是一种用于电信号转发的网络设备,实现多个设备互相通信,与hub同样,每个口都是冲突域,所以不需要监控…
1.网络基础 1.1 什么是网络 网络就是计算机网络是一组计算机或网络设备通过有形 的线缆或无形的媒介如无线,连接起来,按照一定的 规则,进行通信的集合. 网络通信就是指终端设备之间通过计算机网络进行的 通信. 网络分类 按覆盖范围分 局域网:小范围网络:校园网.企业网 城域网:城市范围网络: 广域网:全国.全球网络:internet 1.2 信息传递过程 虚拟的信息传递与真实的物品传递过程有许多相似之处 数据通信的方式 单播---一对一,私聊 组播---一对多,群聊 广播---一对所有 2.o…
[root@test1:Standby] config # [root@test1:Standby] config # [root@test1:Standby] config # [root@test1:Standby] config # cd /etc[root@test1:Standby] etc # pwd/etc[root@test1:Standby] etc # lsadjtime depmod.d inputrc mke2fs.conf radvd.conf.example secu…
在最开始介绍TCP的时候,我们就介绍了TCP的三个特点,分别是面向连接.可靠.字节流式.前面内容我们已经介绍过了TCP的连接管理,接下来的这部分内容将会介绍与TCP可靠性强关联的TCP重传. 很多网络协议都提供了checksum或者CRC手段来检测收到的数据包是否发生错误,但是检测到数据包错误后很多协议都不会进行重传等操作来可靠的修复错误.例如常见的IP和UDP协议完全没有重传,对于链路层的以太网协议,虽然有重传操作但是尝试若干次重传还没有成功会也会放弃(CSMA/CD) 经过N多专家前扑后继的…
先来回顾一下昨天的内容 网络编程开发架构 B/S C/S架构网卡 mac地址网段 ip地址 : 表示了一台电脑在网络中的位置 子网掩码 : ip和子网掩码按位与得到网段 网关ip : 内置在路由器中的交换机 :能够保证在一个局域网内的机器之间通信路由器 :跨局域网之间的通信 - 路由表 arp协议 ——查询IP地址和MAC地址的对应关系 地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议. 主机发送信息时将包含目标I…
本文知识点(目录): 1.概述    2.UDP通讯协议    3.TCPP通讯协议 1.概述 1.在java中网络通讯作为Socket(插座)通讯,要求两台都必须安装socket.    2.不同的协议就会有不同的插座(Socket) 2.UDP通讯协议 2.1.UDP通讯协议的特点 1.将数据封装为数据包,面向无连接    2.每个数据包大小限制为64kb中    3.因为无连接,所以不可靠    4.因为不需要建立连接,所以速度快    5.udp不分服务端与客户端的,只分发送端与接收端.…
Date: 2019-06-19 Author: Sun 一. Python3输出带颜色字体 实现过程: ​ 终端的字符颜色是用转义序列控制的,是文本模式下的系统显示功能,和具体的语言无关. ​ 转义序列是以ESC开头,即用\033来完成(ESC的ASCII码用十进制表示是27,用八进制表示就是033). 书写格式: ​ 开头部分:\033[显示方式;前景色;背景色m + 结尾部分:\033[0m ​ 注意:开头部分的三个参数:显示方式,前景色,背景色是可选参数,可以只写其中的某一个:另外由于表…
写在前面的废话:马上要找工作了,做了一年的.net ,到要找工作了发现没几个大公司招聘.net工程师,真是坑爹呀.哎,java就java吧,咱从头开始学呗,啥也不说了,玩命撸吧,我真可怜啊. 摘要: 本片记载刚刚学习的网络编程的内容,网络编程也称 Socket 编程 .套接字编程. 什么是Socket? 用于描述ip地址和端口,是一个通信链的Handle.在Internet上的主机一般运行了多个服务软件,同时提供几种服务,每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的…
1.传输层基于tcp协议的三次握手和四次挥手? 传输层有两种数据传输协议,分别为TCP协议和UDP协议,其中TCP协议为可靠传输,数据包没有长度设置,理论可以无限长,而UDP协议为不可靠传输,报头一共就8个字节. Tcp的三次握手和四次挥手定义为:建立连接时三次握手完成建立连接,然后传输数据,断开连接时是四次挥手.所以tcp传输数据是安全的. 2. 为什么连接的时候是三次握手,关闭的时候却是四次挥手? 因为当server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文.…
先介绍下什么是TCP,什么是UDP. 1. 什么是TCP? TCP(Transmission Control Protocol,传输控制协议)是面向连接的.可靠的字节流服务,也就是说,在收发数据前,必须和对方建立可靠的连接.这一过程和打电话类似:先拨号振铃,等待对方接电话,说喂,再说自己是谁.在因特网协议族(Internet protocol suite)中,TCP层是位于IP层之上,应用层之下的传输层. 面向有连接 2. 什么是UDP? UDP (User Datagram Protocol,…
1)  OSI七层模型及TCP/IP四层模型 OSI七层模型:是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系.它是一个七层的.抽象的模型,不仅包括一系列抽象的术语或概念,也包括具体的协议. TCP/IP四层模型:是计算机网络的祖父ARPANET和其后继的因特网使用的参考模型. 如图1.1.1:OSI七层模型和TCP/IP模型的对比示意图 A 物理层:包含了多种与物理介质相关的协议,这些物理介质用以支撑TCP/IP通信. 电子/光学协议:描述了信号的各种特性.例如:电压.…
第17章 TCP:传输控制协议 TCP提供了一种可靠的面向连接的字节流运输层服务 TCP的服务 尽管TCP和UDP都使用相同的网络层(IP),TCP却向应用层提供与UDP完全不同的服务. TCP通过下列方式来提供可靠性: 1)应用数据被分割成TCP认为最适合发送的数据块(而对UDP,应用程序产生的数据报长度不变).由TCP传递给IP的信息单位称为报文段或段(segment)[ TCP如何确定报文段的长度 ] 2)当TCP发出一个段后,启动一个定时器,等待目的端确认收到这个报文段.若不能及时收到一…
TCP协议 本文内容如下:      1)TCP协议概念      2)TCP头部结构和字段介绍      3)TCP流量控制            滑动窗口      4)TCP拥塞控制           慢启动.拥塞避免.快重传.快恢复 有关TCP的三次握手四次挥手单独写了一篇博客:[TCP协议]---TCP三次握手和四次挥手 有关TCP粘包和黏包,也单独写一篇博客,下一篇博客就写有关粘包黏包问题. 一.TCP概念 TCP(Transmission Control Protocol 传输控…
TCP的状态转化过程(11种状态)以及TIME_WAIT状态 高性能网络 | 你所不知道的TIME_WAIT和CLOSE_WAIT 我相信很多都遇到过这个问题.一旦有用户在喊:网络变慢了.第一件事情就是,netstat -a | grep TIME_WAIT | wc -l 一下.哎呀妈呀,几千个TIME_WAIT. tcp11种状态监控 为什么TIME_WAIT这么多 TIME-wait很可怕吗,内核优化 TCP连接的"三次握手"与"四次挥手" TCP的11种状态…
计算机网络原理和OSI模型与TCP模型 一.计算机网络的概述 1.计算机网络的定义 计算机网络是一组自治计算机的互连的集合 2.计算机网络的基本功能 a.资源共享 b.分布式处理与负载均衡 c.综合信息服务 3.计算机网络的演进 4.按照地域范围 a>.LAN(Local Area Network) 通常指几千米以内的,可以通过某种介质互联的计算机.打印机.modem或其他设备的集合 MAN(Metropolitan Area Network); b>. MAN覆盖范围为中等规模,介于局域网和…
OSI七层模型与TCP/IP四层模型 OSI模型(Open System Interconnection Reference Model,缩写为OSI),全名“开放式系统互联通信参考模型”,是一个试图使各种计算机在全世界范围内互联为网络的标准框架. tcp.ip分别是传输层和网络层,两层之上是应用层,两层试下是链路层. TCP/IP 互联网的实现,分成好几层,每一层都有自己的功能,就像建筑物一样,每一层都靠下一层支持. 通常人们认为OSI模型最上面三层(应用层.表示层.会话层)在TCP/IP中是…
18.5 TCP的半关闭 牢记 TCP 是 全双工 的. 半关闭:TCP提供了连接的一端 在结束了它的发送后 还能接收来自另外一端数据的能力.但是只有很少的应用程序利用它. 为了实现这个特性,编程接口必须提供一种方法来说明"我已经完成了数据的传送,并且发了FIN给另外一端,但是我还是想接收另外一端发送来的数据,直到结束(向我发送FIN)". 在 执行半关闭 的一端 收到来自另外一端的 FIN 之后,传送一个EOF给应用程序,并对这个 FIN 进行确认并发送ACK,结束了这个连接. 18…
理解 使用网络能够把多方链接在一起,然后可以进行数据传递 所谓的网络编程就是,让在不同的电脑上的软件能够进行数据传递,即进程之间的通信 tcp/ip简介 1. 什么是协议 有的说英语,有的说中文,有的说德语,说同一种语言的人可以交流,不同的语言之间就不行了 为了解决不同种族人之间的语言沟通障碍,现规定国际通用语言是英语,这就是一个规定,这就是协议 2. 计算机网络沟通用什么 现在的生活中,不同的计算机只需要能够联网(有线无线都可以)那么就可以相互进行传递数据 那么不同种类之间的计算机到底是怎么进…