af

python --------------网络(socket)编程

杀马特。学长 韩版系。学妹 提交于 2019-12-26 23:37:38
python --------------网络(socket)编程 一、网络协议 客户端/服务器架构 1.硬件C/S架构(打印机) 2.软件C/S架构(互联网中处处是C/S架构):B/S架构也是C/S架构的一种,B/S是浏览器/服务器 C/S架构与socket的关系:我们用socket就是为了完成C/S架构的开发 osi七层 引子: 须知一个完整的计算机系统是由硬件、操作系统、应用软件三者组成,具备了这三个条件,一台计算机系统就可以自己跟自己玩了(打个单机游戏,玩个扫雷啥的) 如果你要跟别人一起玩,那你就需要上网了,什么是互联网? 互联网的核心就是由一堆协议组成,协议就是标准,比如全世界人通信的标准是英语 如果把计算机比作人,互联网协议就是计算机界的英语。所有的计算机都学会了互联网协议,那所有的计算机都就可以按照统一的标准去收发信息从而完成通信了。 人们按照分工不同把互联网协议从逻辑上划分了层级, 详见网络通信原理:http://www.cnblogs.com/linhaifeng/articles/5937962.html 为何学习socket一定要先学习互联网协议?   首先C/S架构是基于网络通信的   然后网络的核心即一堆网络协议,也就是协议标准。如果你想开发一款基于网络通信的软件,就必须遵循这些标准 socke层 二、socket是什么? socket是应用层与TCP

5月5日学习收获

六眼飞鱼酱① 提交于 2019-12-26 13:57:03
波特率:单片机或计算机在串口通信时的速率,指信号被调制后在单位时间内的变化,即单位时间内载波参数变化的次数,如每秒钟传送240个字符,而每个字符格式包含10位(1个起始位,1个停止位,8个数据位),这时的波特率为240Bd,比特率为10位×240个/秒=2400bps。 delay函数:在C语言中,该函数一般是自己定义的一个延时函数。 GPIO(General Purpose Input Output):通用输入输出,另称总线扩展器,是利用工业标准I2C、SMBus或SPI接口简化了的I/O口,简而言之,就是每个GPIO端口可通过软件进行配置,决定其是输入还是输出端口。 GPIO库: gpio管脚:一个io管脚,这个管脚可以有多个配置。在库函数中用GPIO_PIN_1这样的宏定义表示。 gpio端口:在库函数中用宏定义GPIOA、GPIOB等表示。 1、gpio库说明 库文件名:stn32f4xx_gpio.c 使用该驱动的方法: (1)使用RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOx,ENABLE)函数使能gpio的AHB总线时钟。 (2)使用GPIO_Init()函数对每个引脚进行四种可能的配置: 《1》输入状态:Floating(浮空)、Pull-up(上拉)、Pull-down(下拉) 《2》输出状态:Push-Pull(上拉下拉)

网络编程基础

放肆的年华 提交于 2019-12-22 08:25:12
软件开发的架构 两个程序之间的通讯的应用大致可以分两种: 第一种是应用类: qq , 微信 , 网盘 , 优酷 , 这一类是属于需要安装的桌面应用 第二种shi web类: 比如百度 ,知乎, 博客园, 等使用浏览器访问就可以直接使用的应用 这些应用的本质其实都是连个程序之间的通讯,而这两个分类又对应了两个软件开发的架构 1 . C/S架构 C/S 即: Client与Server, 中文意思是: 客户端与服务端的架构, 这种架构也是从用户层面(也可以是物理层面)来划分的 这里的客户端一般泛指客户端应用程序EXE,程序需要先安装后,才能运行在用户的电脑上,对用户的电脑操作系统环境依赖较大。 2.B/S架构 B/S即: Browser与Server ,中文意思 :浏览器端与服务端架构,这种架构师从用户层面来划分的 Browser浏览器,其实也是一种Client客户端,只是这个客户端不需要大家去安装什么应用程序,只需在浏览器上通过HTTP请求服务器端相关的资源(网页资源),客户端Browser浏览器就能进行增删改查。 网络基础 网络基础 1.一个程序如何在网络上找到另一个程序?   首先,程序必须要启动,其次,必须有这台机器的地址,我们都知道我们人的地址大概就是国家\省\市\区\街道\楼\门牌号这样字。那么每一台联网的机器在网络上也有自己的地址,它的地址是怎么表示的呢?

网络编程1 网络开发基础(Socket、TCP、UDP)

狂风中的少年 提交于 2019-12-21 03:40:02
OSI七层网络模型 1.网络的七层结构:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。 2.在网络通信的发送端,其通信数据每到一个通信层,都会被该层协议在数据中添加一个包头数据。而在接收方恰恰相反,数据通过每一层时都会被该层协议剥去相应的包头数据。 TCP/IP 1.IP地址 IP地址是指互联网协议地址(Internet Protocol Address,又译为网际协议地址)。IP地址时IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一个主机分配一个逻辑地址,以此来屏蔽物理地址的差异。 2.Port 端口号:为了区分不同的网络程序,计算机会为每一个· 网络程序分配一个独一无二的端口号,端口是一个虚拟的、逻辑上的概念。 for example:Web服务的端口号是80,FTP服务的端口号是21,SMTP服务的端口号是25。 3.TCP/IP通信协议的网络层次结构 应用层 运输层 网际层IP 网络接口层 4.TCP/IP协议的特性 1.封包交换网络服务 2.可靠流传输服务 3.独立网络技术 4.通用互连 5.端到端应答式 6.标准应用协议 5.TCP/IP中的各种协议 1.IP协议 IP协议是网络层协议,主要职责是把数据从源地址传送到目的地址,并提供两个基本功能--寻址和分段 IP协议提供的是不可靠无连接的服务 2.TCP协议

【Python3之socket编程】

末鹿安然 提交于 2019-12-17 21:50:06
一、socket的定义   Socket是应用层与 TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中, Socket其实就是一个门面模式,它把复杂的 TCP/IP协议族隐藏在 Socket接口后面,对用户来说,一组简单的接口就是全部,让 Socket去组织数据,以符合指定的协议。 所以,我们无需深入理解tcp/udp协议,socket已经为我们封装好了,我们只需要遵循socket的规定去编程,写出的程序自然就是遵循tcp/udp标准的。 补充:也有人将socket说成ip+port,ip是用来标识互联网中的一台主机的位置,而port是用来标识这台机器上的一个应用程序,ip地址是配置到网卡上的,而port是应用程序开启的,ip与port的绑定就标识了互联网中独一无二的一个应用程序,而程序的pid是同一台机器上不同进程或者线程的标识 二、套接字发展史及分类   套接字起源于 20 世纪 70 年代加利福尼亚大学伯克利分校版本的 Unix,即人们所说的 BSD Unix。 因此,有时人们也把套接字称为“伯克利套接字”或“BSD 套接字”。一开始,套接字被设计用在同 一台主机上多个应用程序之间的通讯。这也被称进程间通讯,或 IPC。套接字有两种(或者称为有两个种族),分别是基于文件型的和基于网络型的。 基于文件类型的套接字家族 套接字家族的名字:AF_UNIX

hello/hi的简单的网络聊天程序--C++

天大地大妈咪最大 提交于 2019-12-11 16:27:18
socket编程介绍 Socket是进程通讯的一种方式,即调用这个网络库的一些API函数实现分布在不同主机的相关进程之间的数据交换。 几个定义: (1)IP地址:即依照TCP/IP协议分配给本地主机的网络地址,两个进程要通讯,任一进程首先要知道通讯对方的位置,即对方的IP。 (2)端口号:用来辨别本地通讯进程,一个本地的进程在通讯时均会占用一个端口号,不同的进程端口号不同,因此在通讯前必须要分配一个没有被访问的端口号。 (3)连接:指两个进程间的通讯链路。 (4)半相关:网络中用一个三元组可以在全局唯一标志一个进程: (协议,本地地址,本地端口号) 这样一个三元组,叫做一个半相关,它指定连接的每半部分。 (4)全相关:一个完整的网间进程通信需要由两个进程组成,并且只能使用同一种高层协议。也就是说,不可能通信的一端用TCP协议,而另一端用UDP协议。因此一个完整的网间通信需要一个五元组来标识: (协议,本地地址,本地端口号,远地地址,远地端口号) 这样一个五元组,叫做一个相关(association),即两个协议相同的半相关才能组合成一个合适的相关,或完全指定组成一连接。 客户/服务器模式 在TCP/IP网络应用中,通信的两个进程间相互作用的主要模式是客户/服务器(Client/Server, C/S)模式,即客户向服务器发出服务请求,服务器接收到请求后,提供相应的服务。客户

Linux下C语言Hello-Hi 网络聊天室

痴心易碎 提交于 2019-12-08 20:39:26
1.socket原理   socket通信就是通过IP和端口号将两台主机建立连接,提供通信。主机A的应用程序要能和服务器B进行通信,必须通过Socket建立连接,而建立Socket连接本质上就是依靠TCP/IP协议来建立TCP连接。TCP协议是传输层协议,建立TCP连接还需要用到底层的各种协议的服务,其中最主要的是依靠IP协议来寻找网络中的主机。处于网络层的IP协议可以通过地址找到所要寻找的目标主机,但是一台主机可能运行着多个应用程序,我们必须指定TCP或UDP的地址(端口号)的确定端口号,因此一个Socket实例唯一代表一个主机上的应用程序的通信链路。 2.socket通信流程 服务端:初始化 socket套接字(socket)----->绑定socket(bind)---->对端口进行监听(listen)----->阻塞(accept)----->接受数据(处理数据),根据需要返回结果 客户端:初始化 socket套接字(socket)------>发送连接请求(connect),如果连接成功,客户端发送数据请求,等待服务器端返回数据 3.socket编程函数 int socket(int protofamily, int type, int protocol);//返回sockf sockfd是描述符。socket函数对应于普通文件的打开操作

29.socket网络基础

本秂侑毒 提交于 2019-12-08 14:23:25
原文: https://www.cnblogs.com/linhaifeng/articles/6129246.html 一 客户端/服务器架构 1.硬件C/S架构(打印机) 2.软件C/S架构   互联网中处处是C/S架构   如黄色网站是服务端,你的浏览器是客户端(B/S架构也是C/S架构的一种)   腾讯作为服务端为你提供视频,你得下个腾讯视频客户端才能看它的视频) C/S架构与socket的关系: 我们学习socket就是为了完成C/S架构的开发 二 osi七层 引子: 须知一个完整的计算机系统是由硬件、操作系统、应用软件三者组成,具备了这三个条件,一台计算机系统就可以自己跟自己玩了(打个单机游戏,玩个扫雷啥的) 如果你要跟别人一起玩,那你就需要上网了,什么是互联网? 互联网的核心就是由一堆协议组成,协议就是标准,比如全世界人通信的标准是英语 如果把计算机比作人,互联网协议就是计算机界的英语。所有的计算机都学会了互联网协议,那所有的计算机都就可以按照统一的标准去收发信息从而完成通信了。 人们按照分工不同把互联网协议从逻辑上划分了层级, 详见网络通信原理:http://www.cnblogs.com/linhaifeng/articles/5937962.html 为何学习socket一定要先学习互联网协议: 1.首先:本节课程的目标就是教会你如何基于socket编程

Windows下C语言实现 hello/hi 多线程网络聊天程序以及代码分析

早过忘川 提交于 2019-12-08 13:19:32
一、编译环境   系统:Windows 10  软件:CodeBlocks 17.12 二、完整代码 server: 1 #include <stdio.h> 2 #include <windows.h> 3 #include <Winsock2.h> 4 #include <string.h> 5 #include <pthread.h> 6 7 #pragma comment("ws2_32.lib") 8 9 struct mes{ 10 SOCKET clisock; 11 SOCKADDR_IN cliaddr; 12 }; 13 14 void* thread_new(void *); 15 16 int main() 17 { 18 WORD wVersionRequested; 19 WSADATA wsaData; 20 wVersionRequested = MAKEWORD(2,2); 21 if(WSAStartup(wVersionRequested, &wsaData) != 0) 22 { 23 printf("WSAStarup Failed!\n");//初始化错误 24 exit(-1); 25 } 26 if(wsaData.wVersion != wVersionRequested) 27 { 28 printf("The version