网络编程

网络编程基础一

為{幸葍}努か 提交于 2019-12-05 00:39:44
一、架构 两种常见的架构: C/S架构 (客户机/服务器)和 B/S架构 (浏览器/服务器,也属于C/S架构的一种)。    C/S架构优点: 能充分发挥客户机的性能 由于只有一层交互,因此响应速度较快,安全性高    C/S架构缺点: 用户群固定,需要下载客户端才能使用 维护成本高   B/S架构优点: 客户端无需安装,有浏览器就行,跨平台 B/S架构可以直接放在广域网上,通过一定的权限控制实现多客户访问的目的,交互性较强 统一了应用的接口    B/S架构缺点: 跨浏览器问题 在速度和安全性上需要花费巨大的设计成本 二、通信 网络编程基本上都是基于请求/响应方式的,即一个设备发送请求数据给另外一个,然后接收另一个设备的反馈。   MAC地址:物理地址,由网卡决定的,是固定且唯一的。在OSI模型中第二层数据链路层负责。   IP地址:四位点分十进制,在计算机内部存储时只需要4个字节即可。在OSI模型中第三层网络层负责。标识了计算机在网络中的位置。 可以使用IP或域名来标识网络上的一台设备 。   域名:由于IP地址不方便记忆,给IP取一个字符的名字,IP和域名之间存在一定的对应关系。在网络中只能使用IP地址进行数据传输,所以在传输以前,需要把域名转换为IP,这个由DNS的服务器完成。   端口:规定一个设备有2 16 个,即65536个端口,每个端口对应一个唯一的程序

网络编程

百般思念 提交于 2019-12-04 23:13:00
目录 一、网络编程大体图 二、TCP协议 1.三次握手,四次挥手图 2.tcp代码 1.简单版 2.电影上传 3.json补充,序列化类 4.subprocess补充 三、UDP的使用 1.简介 2.使用基本代码 2.1简易版qq 四、UDP和TCP的区别 [doc] 一、网络编程大体图 二、TCP协议 TCP协议又叫:流失协议、可靠协议 1.TCP协议像流水一样一直发送,一直接收 2.TCP协议可靠的原因:有反馈机制(发送一句,回复一句才会发送下一句) 洪水攻击:同一时间发送给服务器大量请求 1.三次握手,四次挥手图 2.tcp代码 1.简单版 服务端: import socket server = socket.socket() # 生成对象 server.bind(('127.0.0.1', 8080)) # 绑定IP和端口 (自己的) server.listen(5) # 半连接池,允许等待数 conn, addr = server.accept() # 等待接听 # conn:地址 addr:端口号(随机分配) while True: data = conn.recv(1024) # 接收 print(data) # 打印接收的内容 # 判断如果接收的是空,就跳出循环 if len(data) == 0: break conn.send(data.lower()) #

java---网络编程(上)

烈酒焚心 提交于 2019-12-04 21:34:00
1.1网络编程 网络编程指的是编写运行在多个设备计算机的程序,这些计算机通过网络连接起来 java.net包中提供了两种常见的网络协议的支持: TCP:TCP是传输控制层协议的缩写,它保障了两个应用程序之间可靠的通信,常用于互联网协议,简称TCP/IP UDP:UDP是用户数据协议的缩写,一个无连接的协议,提供了应用程序之间发送的数据包 ------Socket编程-------URL处理----- socket编程:使用广泛的网络概念 URL处理:网页地址(网页orFTP地址) protocol://host:port/path?query#fragment protocol(协议)可以是HTTP,HTTPS,FTP,File,port,path为文件路径及文件名 https://www.baidu.com/index.html?language=cn#(id属性的元素) 1.1Socket 2.1URL解析 协议(protocol):https 主机(host:port):www.baidu.com 端口号(port):80,以上URL实例并未指定端口,HTTP协议默认的端口号80 文件路径(path):/index.html 请求参数(query):language = cn 定位位置(fragment):id属性为()内的HTML元素位置 URL类方法 package

网络编程-Tcp传输1

我的梦境 提交于 2019-12-04 20:33:30
一次简单的Tcp 传输import java.io.*; import java.net.*; public class Practice_1 { public static void main(String[] args) throws Exception { // TODO Auto-generated method stub new Thread(new TcpClient()).start(); new Thread(new TcpSer()).start(); } } class TcpClient implements Runnable { public void run() { try { method(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void method() throws Exception { //1:创建Socket 、指定端口 Socket s = new Socket("199.234.8.53",10003); // 2:为了发送数据、应该获取socket中的输出流 。 OutputStream out = s.getOutputStream(); out.write("tcp ge men lai

网络编程-upd\\Socket接收发送

橙三吉。 提交于 2019-12-04 19:53:22
import java.io.*; import java.net.*; public class first { public static void main(String[] args) { // TODO Auto-generated method stub MySend ms = new MySend(); MyRece mr = new MyRece(); Thread th1 = new Thread(ms); Thread th2 = new Thread(mr); th1.start(); th2.start(); } } class MySend implements Runnable { public void run() { DatagramSocket ds = null; try { ds = new DatagramSocket(8888); } catch (SocketException e) { // TODO Auto-generated catch block e.printStackTrace(); } // 2 确定数据 、 封装成数据包 byte[] data = "udp ge men lai le ".getBytes(); DatagramPacket dp = null; try { dp = new

Netty学习第三章--Linux网络编程使用的I/O模型

旧巷老猫 提交于 2019-12-04 18:39:17
一、同步阻塞IO:blocking IO(BIO)    1.过程分析:   当进程进行系统调用时,内核就会去准备数据,当数据准备好后就复制到内核缓冲器,返回成功后将数据复制给进程内存,其中这一系列过程就是阻塞的。 2.特点:   优点:能及时响应数据   缺点:因为整个过程都是阻塞的,所以高并发下性能非常差 二、同步非阻塞IO:nonblocking IO(NIO)    1.过程分析:   当进程调用系统时,会立即返回error,当用户知道返回的是error后就知道数据没有准备好,此时进程进行等待,这一个过程是没有阻塞的,因此可以有多个调用请求。当第一个请求来到时,内核会去准备数据,就和BIO的模式一样,当数据准备好后,复制给用户进程内存,这一个过程是阻塞的,但是用户进程会一直去轮询判断数据是否已经准备好了。 2.特点:   优点:能够在数据处理好之前去做其他的事情   缺点:性能依旧很差,第一需要不断去判断数据释放准备好了;第二在拷贝数据这个过程中,进程依旧书阻塞的;第三因为是轮询去找数据,所以数据会有延迟 三、IO多路复用    1.定义:   所谓的IO多路复用指的就是一个或多个线程处理多个TCP连接。 2.网络模型:   IO多路复用的网络模型有三种:   ①select模型:   调用select函数时会阻塞住进程,等有数据可读、可写、出异常或者超时就会返回

网络编程-1

爱⌒轻易说出口 提交于 2019-12-04 18:20:35
1、 套接字 套接字是一种具有之前所说的“通讯端点”概念的计算机网络数据结构,网络化的应用程序在开始任何通讯之前都必需要创建套接字。就像电话的插口一样,没有它就完全没办法通讯。 2、 面向连接和无连接 套接字的类型有两种。一种是面向连接的套接字,另一种是无连接的套接字。 面向连接:在通讯之前需要建立一条连接,面向连接的通讯方式提供了顺序的、可靠的、不会重复的数据传输,每条数据都会不多不少地到达目的地。通过TCP协议实现。 无连接:和面向连接正好相反,通讯之前不需要建立连接,但无法保证供顺序的、可靠的、不会重复的数据传输。通过UDP协议实现 3、 SOCKET 模块 主要使用socket模板中的socket.socket()函数来实现套接字,语法如下: family可以是AF_UNIX或AF_INET,socket_type 可以是 SOCK_STREAM(TCP)或 SOCK_DGRAM(UDP)。protocol 一般不填,默认值为 0。 4. 套接字中的方法 socket.socket() 函数 描述 服务器端套接字函数 s.bind() 绑定地址(主机,端口号对)到套接字 s.listen() 开始 TCP 监听 s.accept() 被动接受 TCP 客户的连接, (阻塞式)等待连接的到来 客户端套接字函数 s.connect() 主动初始化 TCP 服务器连接 s

Java基础-网络编程篇

放肆的年华 提交于 2019-12-04 17:59:58
1. 网络编程基础 1.1 软件结构 C/S结构 :全称为Client/Server结构,是指客户端和服务器结构。常见程序有QQ、迅雷等软件。 B/S结构 :全称为Browser/Server结构,是指浏览器和服务器结构。常见浏览器有谷歌、火狐等。 两种架构各有优势,但是无论哪种架构,都离不开网络的支持。 网络编程 ,就是在一定的协议下,实现两台计算机 的通信的程序。 1.2 网络通信协议 ​ 网络通信协议: 通信协议是对计算机必须遵守的规则,只有遵守这些规则,计算机之间才能进行通信。这就 好比在道路中行驶的汽车一定要遵守交通规则一样,协议中对数据的传输格式、传输速率、传输步骤等做了 统一规定,通信双方必须同时遵守,最终完成数据交换。 ​ TCP/IP协议: 传输控制协议/因特网互联协议( Transmission Control Protocol/Internet Protocol),是 Internet最基本、最广泛的协议。它定义了计算机如何连入因特网,以及数据如何在它们之间传输的标准。它 的内部包含一系列的用于处理数据通信的协议,并采用了4层的分层模型,每一层都呼叫它的下一层所提供的 协议来完成自己的需求。 1.3 协议分类 ​ 通信的协议还是比较复杂的, java.net 包中包含的类和接口,它们提供低层次的通信细节。我们可以直接使用这些类和接口,来专注于网络程序开发

面试 网络编程

放肆的年华 提交于 2019-12-04 16:04:37
就是用来实现网络互连的不同计算机上运行的程序间可以进行数据交换 如今,计算机已经成为人们学习、工作、生活必不可少的工具。我们利用计算机可以和亲朋好友网上聊天,也可以玩网游、发邮件等等,这些功能实现都离不开计算机网络。 计算机网络实现了不同计算机之间的通信,这必须依靠编写网络程序来实现。 下面,我们将教大家如何编写网络程序。 在学习编程之前,我们首先要了解关于网络通信的一些概念。 1、什么是计算机网络? 计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。 从其中我们可以提取到以下内容: 1. 计算机网络的作用 :资源共享和信息传递。 2. 计算机网络的组成: a) 计算机硬件 : 计算机 (大中小型服务器,台式机、笔记本等)、 外部设备 (路由器、交换机等)、 通信线路 (双绞线、光纤等)。 b) 计算机软件 : 网络操作系统 (Windows 2000 Server/Advance Server、Unix、Linux等)、 网络管理软件 (WorkWin、SugarNMS等)、 网络通信协议 (如TCP/UDP协议)。 3. 计算机网络的多台计算机是具有独立功能的 ,而不是脱离网络就无法存在的。 2、什么是网络通信协议?

python基础(29):网络编程一(软件开发架构、网络基础、套接字初使用)

假如想象 提交于 2019-12-04 15:37:18
1. 软件开发架构 我们了解的程序之间通讯的应用可分为两种: 第一种是应用类:qq、微信、百度网盘、腾讯视频这一类是属于需要安装的桌面应用。 第二种是web类:比如百度、知乎、博客园等使用浏览器访问就可以直接使用的应用。 这些应用的本质其实都是两个程序之间的通讯,而这两个分类又对应了两个软件开发的架构。 1.1 C/S架构 C/S即:Client与Server ,中文意思:客户端与服务器端架构,这种架构也是从用户层面(也可以是物理层面)来划分的。 这里的客户端一般泛指客户端应用程序EXE,程序需要先安装后,才能运行在用户的电脑上,对用户的电脑操作系统环境依赖较大。 1.2 B/S架构 B/S即:Browser与Server,中文意思:浏览器端与服务器端架构,这种架构是从用户层面来划分的。 Browser浏览器,其实也是一种Client客户端,只是这个客户端不需要大家去安装什么应用程序,只需在浏览器上通过HTTP请求服务器端相关的资源(网页资源),客户端Browser浏览器就能进行增删改查。 2. 网络基础 2.1 OSI七层模型 须知一个完整的计算机系统是由硬件、操作系统、应用软件三者组成,具备了这三个条件,一台计算机系统就可以自己跟自己玩了(打个单机游戏,玩个扫雷啥的)。 如果你要跟别人一起玩,那你就需要上网了,什么是互联网? 互联网的核心就是由一堆协议组成,协议就是标准