python_网络编程_基础
基本的架构有C/S架构
和B/S架构
B/S架构优于C/S架构? 因为统一入口 , 都是从浏览器开始访问
两台电脑实现通信, 需要网卡, 网卡上有全球唯一的mac地址
ARP协议
#通过ip地址就能找到对应的mac地址
多台电脑相连的问题: 交换机
如何通信:
广播:告诉所有人的过程---->广播
确定的电脑进行回复 ----> 单播
网关:
局域网的机器想要访问局域网之外的机器, 需要网关
#子网掩码和IP地址
判断两台电脑是否在同一个局域网内
#通过端口来找程序:
#在计算机每一个网络通信的程序在同一时间占用一个端口, 不可能在同一时间, 有两个程序, 占用同一个端口
端口的范围是0-65535 一般是8000之后的端口, 前面是系统的
#IP+端口 唯一确定一个程序 IP+端口找到唯一的机器的唯一的程序
TCP/UDP协议 TCP协议是可靠的 面向连接的运输信息是全双工的
UDP协议是不可靠的, 无连接的
TCP 类似于打电话
UDP类似于发短信
TCP协议;连接的时候, 三次握手,
断开的时候, 四次挥手
计算机网络分层:
应用层
传输层
网络层
数据链路层
物理层
服务器:
import socket sk = socket.socket()
sk.bind(('127.0.0.1', 9000))
sk.listen() conn,addr = sk.accept()
ret = conn.recv(1024)
conn.send(b"hello")
ret = conn.recv(1024)
print(ret.decode("utf-8"))
conn.close()
sk.close() 代理:
import socket
sk = socket.socket()
sk.connect(('127.0.0.1', 9000)) sk.send(b"hi")
ret = sk.recv(1024)
sk.send("你吃饭了吗?", encod="utf-8")
print(ret)
sk.close()
加强版server:
import socket
sk = socket.socket()
sk.connect(('127.0.0.1', 9000))
while True:
msg = input(">>>")
sk.send(msg.encode("utf-8")) ret = sk.recv(1024)
if ret == 'bye':
break
print(ret.decode("utf-8"))
sk.close()
加强版client:
import socket sk = socket.socket()
sk.bind(('127.0.0.1', 9000))
sk.listen() conn,addr = sk.accept()
while True: mag = conn.recv(1024)
if mag == 'bye':
conn.send(b'bye')
break
print(mag.decode("utf-8"))
info = input(">>>")
conn.send(info.encode("utf-8")) conn.close()
sk.close()
python_网络编程_基础的更多相关文章
- Python_网络编程_socket()
什么是 Socket? Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯. 详细资 ...
- python六十七课——网络编程(基础知识了解)
网络编程: 什么是网络编程? 网络:它是一种隐形的媒介:可以将多台计算机使用(将它们连接到一起) 网络编程:将多台计算机之间可以相互通信了(做数据交互) 一旦涉及到网络编程,划分为两个方向存在,一方我 ...
- java第九节 网络编程的基础知识
/** * * 网络编程的基础知识 * 网络协议与TCP/IP * IP地址和Port(端口号) * 本地回路的IP地址:127.0.0.1 * 端口号的范围为0-65535之间,0-1023之间的端 ...
- python网络编程——socket基础篇
python的网络编程比c语言简单许多, 封装许多底层的实现细节, 方便程序员使用的同时, 也使程序员比较难了解一些底层的东西. 1 TCP/IP 要想理解socket,首先得熟悉一下TCP/IP协议 ...
- 01网络编程(基础知识+OSI七层协议+TCP与UDP)
目录 01 网络编程 一.软件开发架构 1.1 CS架构 1.2 BS架构 二.网络理论前戏 2.1 简介 2.2 常见硬件 三.OSI七层协议(五层) 3.1 七层协议 3.2 五层协议 3.3 知 ...
- TCP/UDP网络编程的基础知识与基本示例(windows和Linux)
一.TCP编程的一般步骤 服务器端: 1.创建一个socket,用函数socket() 2.绑定IP地址.端口等信息到socket上,用函数bind() 3.开启监听,用函数listen() 4.接收 ...
- Unix网络编程_卷1卷2
1. UNIX 网络编程(第2版)第1卷:套接口API和X/Open 传输接口API PDFhttp://www.linuxidc.com/Linux/2014-04/100155.htm UNIX网 ...
- [19/04/13-星期六] 网络编程_基本概念(关注传输层、数据传输,TCP和UDP)
一.概念 ▪ 什么是计算机网络? 计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统, 网络管理软件及网络通信协议的管理和协调下,实现资源共享和信 ...
- Python网络编程_抓取百度首页代码(注释详细)
1 #coding=utf-8 2 #网络编程 3 4 #客户端建立socket套接字 5 #引入socket模块 6 import socket 7 #实例化一个套接字,2个参数分别是: IPV4. ...
随机推荐
- PostgreSQL 进程结构
本文主要讲述了PG的几个主要进程,以及PG的核心架构.进程和体系结构详见下图: 从上面的体系结构图可以看出来,PG使用经典的C/S架构,进程架构.在服务器端有主进程.服务进程.子进程.共享内存以及文件 ...
- ckeditor粘贴word
); Server.setTimeout(_this.config.timeout, function(cli){ cli.end('timeout\n'); }); console.log('Ser ...
- [Luogu] 受欢迎的牛
https://www.luogu.org/problemnew/show/P2341 Tarjan 缩点 + 判断出度 #include <iostream> #include < ...
- Java常用类、集合框架类1
A 时间日期格式转换(SDUT 2246)(SimpleDateFormat用法) 转换的df2里面时间是US,上面的df1可以是CHINA或者US. package test; import j ...
- java 标准日期格式
public static void main(String[] argv) { // 使用默认时区和语言环境获得一个日历 Calendar cale = Calendar.getInstance() ...
- 将List<E>内对象按照某个字段排序
主要用到java.util的Collections类 Collections.sort(list); 其中,E必须实现Comparable<E>接口
- 判断List<E>内是否有重复对象
主要用到Java 8的Stream类 long distinctedSize = list.stream().distinct().count(); boolean hasRepeat = list. ...
- Allure自动化测试报告之修改allure测试报告logo
1.安装allure 2.进入 /usr/local/Cellar/allure/2.10.0/libexec/config 3.在allure.yml添加 - custom-logo-plugin ...
- codeforces#1251E2. Voting (Hard Version)(贪心)
题目链接: http://codeforces.com/contest/1251/problem/E2 题意: 主角需要获得n个人的投票 有两种方式让某个人投票 1,已经投票的人数大于m 2,花p枚硬 ...
- [CSP-S模拟测试]:跳房子(模拟)
题目描述 跳房子,是一种世界性的儿童游戏,也是中国民间传统的体育游戏之一.跳房子是在$N$个格子上进行的,$CYJ$对游戏进行了改进,该成了跳棋盘,改进后的游戏是在一个$N$行$M$列的棋盘上进行,并 ...