基本的架构有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_网络编程_基础的更多相关文章

  1. Python_网络编程_socket()

    什么是 Socket? Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯. 详细资 ...

  2. python六十七课——网络编程(基础知识了解)

    网络编程: 什么是网络编程? 网络:它是一种隐形的媒介:可以将多台计算机使用(将它们连接到一起) 网络编程:将多台计算机之间可以相互通信了(做数据交互) 一旦涉及到网络编程,划分为两个方向存在,一方我 ...

  3. java第九节 网络编程的基础知识

    /** * * 网络编程的基础知识 * 网络协议与TCP/IP * IP地址和Port(端口号) * 本地回路的IP地址:127.0.0.1 * 端口号的范围为0-65535之间,0-1023之间的端 ...

  4. python网络编程——socket基础篇

    python的网络编程比c语言简单许多, 封装许多底层的实现细节, 方便程序员使用的同时, 也使程序员比较难了解一些底层的东西. 1 TCP/IP 要想理解socket,首先得熟悉一下TCP/IP协议 ...

  5. 01网络编程(基础知识+OSI七层协议+TCP与UDP)

    目录 01 网络编程 一.软件开发架构 1.1 CS架构 1.2 BS架构 二.网络理论前戏 2.1 简介 2.2 常见硬件 三.OSI七层协议(五层) 3.1 七层协议 3.2 五层协议 3.3 知 ...

  6. TCP/UDP网络编程的基础知识与基本示例(windows和Linux)

    一.TCP编程的一般步骤 服务器端: 1.创建一个socket,用函数socket() 2.绑定IP地址.端口等信息到socket上,用函数bind() 3.开启监听,用函数listen() 4.接收 ...

  7. Unix网络编程_卷1卷2

    1. UNIX 网络编程(第2版)第1卷:套接口API和X/Open 传输接口API PDFhttp://www.linuxidc.com/Linux/2014-04/100155.htm UNIX网 ...

  8. [19/04/13-星期六] 网络编程_基本概念(关注传输层、数据传输,TCP和UDP)

    一.概念 ▪ 什么是计算机网络? 计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统, 网络管理软件及网络通信协议的管理和协调下,实现资源共享和信 ...

  9. Python网络编程_抓取百度首页代码(注释详细)

    1 #coding=utf-8 2 #网络编程 3 4 #客户端建立socket套接字 5 #引入socket模块 6 import socket 7 #实例化一个套接字,2个参数分别是: IPV4. ...

随机推荐

  1. Greenplum 函数 gp_dist_random

    转载自:https://yq.aliyun.com/articles/7593 函数作用: gp_dist_random('gp_id')本质上就是在所有节点查询gp_id, gp_dist_rand ...

  2. How to troubleshoot the "Could not create 'CDO.Message'" error message

     https://support.microsoft.com/en-us/kb/910360 Method 1: Make sure that the Cdosys.dll file is cor ...

  3. MySQL数据库卸载有残留, windows10 sc delete 拒绝访问 失败5

    sc delete 拒绝访问,原因是当前用户的权限不足,需要做的是在注册表 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\P ...

  4. 《MySQL数据分析实战》八句箴言前四句解析

    大家好,我是jacky朱元禄,很高兴继续跟大家学习<MySQL数据分析实战>,从本节课程开始,jacky将从SQL语句入手,给大家解析八句箴言: 不管三七二十一,先把数据show来看: 数 ...

  5. Django 测试开发1

    笔者用的版本的是django==1.8.2,这个版本的学习资料最多,文档最完整.首先创建项目:django-admin startproject 项目名. guest/__init__.py 一个空的 ...

  6. 【Java】浅谈Java内部类(转载)

    说得挺细的,不是泛泛而谈.https://blog.csdn.net/weixin_42762133/article/details/82890555

  7. ElementUI】日期选择器时间选择范围限制,只能选今天之前的时间,或者是只能选今天之后的时间。今天是否可以选。限制结束日期不能大于开始日期

    <el-date-picker v-model="value1" type="date" placeholder="选择日期" :pi ...

  8. CV2——学习笔记-图像分类

    1.图像分类 • 2.神经网络原理 • 1.卷积神经网络介绍 • 2.利用caffe搭建深度网络做图像分类 挑战:光照变化+形变.类内变化. 标签.预测函数,泛化能力. 如何提高泛化能力?需要用图像特 ...

  9. redis修改持久化路径、日志路径、清缓存

    redis修改持久化路径和日志路径 vim redis.conf logfile /data/redis_cache/logs/redis.log #日志路径 dir /data/redis_cach ...

  10. Tracker 服务器地址大全 Tracker List

    https://dns.icoa.cn/tracker/ udp://tracker.tiny-vps.com:6969/announce https://1337.abcvg.info/announ ...