网络编程(定义)
网络编程的本质就是两个设备之间的数据交换,当然,在计算机网络中,设备主要指计算机,数据传递本身
没有多大难度,不就是把一个设备中的数据发送给一个设备,然后接收另一个设备的反馈的数据。
网络编程基本上都是基于请求/响应方式的,也就是一个设备发送请求数据给另外一个,然后接收另一个设备的反馈
IP地址和域名
现实生活中,如果要打电话则需要知道对应人的电话号码,如果要寄信则需要知道收信人的地址。在网络中
也是这样,需要知道一个设备的位置。则需要使用该设备的IP地址,具体的链接过程由硬件实现。一般是IPv4
端口概念
为了在一台设备上可以运行多个程序,人为的设计了端口(port)的概念就像公司的分机号码
规定一个设备有216个,也就是65536个端口,每个端口对应一个唯一的程序。 python网络编程的话就要用到一个 socket(称作为:套接字)
进入cmd输入 pip install socket 进行下载(最新版本)
上面对网路编程介绍了这么多,下面来写个实例
#创建主叫方(字符发送时需要编码)
import socket
import threading
#建立客户套接字
c=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
print('创建客户套接字')
c.connect(('00.00.00.00',0000))#链接对方,不成功抛出异常(自己的ip)
print('我已链接到服务')
#send发送的数据要编码 encode()编码
def myreve(c):
while True:
#1024b=1k
#3b=1字节(所以字符在300以内)
msg=c.recv(1024)#当没有消息的时候休息,阻塞
print(msg.decode())#解码
threading._start_new_thread(myreve,(c,))
while True:
msg=input()
c.send(msg.encode())#编码 #被叫方(跟主叫方差不多) ss=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
print('建立服务套接字')
#服务套接字绑定端口号,绑定主机
print('绑定端口和主机')
ss.bind(('localhost',9999))
#建立最大链接数,超过排队
ss.listen(5)
#接受客户套接字请求
c=ss.accept()
print('某个用户链接到我了')
#线程 函数
def myreve(c):
while True:
msg=c.recv(1024)#当没有消息的时候休息,阻塞
print(msg.decode())#解码
threading._start_new_thread(myreve,(c[0],))
while True:
msg=input()
c[0].send(msg.encode())#编码

python3网络编程的更多相关文章

  1. 吴裕雄--天生自然python学习笔记:Python3 网络编程

    Python 提供了两个级别访问的网络服务.: 低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口的全部方法. 高级别的网络 ...

  2. Python3 网络编程

    虽然大家现在对互联网很熟悉,但是计算机网络的出现比互联网要早很多. 计算机为了联网,就必须规定通信协议,早期的计算机网络,都是由各厂商自己规定一套协议,IBM.Apple和Microsoft都有各自的 ...

  3. Python3 网络编程和并发编程总结

    目录 网络编程 开发架构 OSI七层模型 socket subprocess 粘包问题 socketserver TCP UDP 并发编程 多道技术 并发和并行 进程 僵尸进程和孤儿进程 守护进程 互 ...

  4. Python3 网络编程基础1

    目录 开发架构 C/S架构 B/S架构 OSI模型 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 TCP协议 socket 开发架构 C/S架构 client 和 server, 既客户 ...

  5. Python3 网络编程小练习

    三次握手.四次挥手图示意图 基于TCP开发一款远程cmd程序 # server.py import socket import subprocess server = socket.socket() ...

  6. python之网络编程

    本地的进程间通信(IPC)有很多种方式,但可以总结为下面4类: 消息传递(管道.FIFO.消息队列) 同步(互斥量.条件变量.读写锁.文件和写记录锁.信号量) 共享内存(匿名的和具名的) 远程过程调用 ...

  7. 『Python』socket网络编程

    Python3网络编程 '''无论是str2bytes或者是bytes2str其编码方式都是utf-8 str( ,encoding='utf-8') bytes( ,encoding='utf-8' ...

  8. python基础网络编程--转

    python之网络编程 本地的进程间通信(IPC)有很多种方式,但可以总结为下面4类: 消息传递(管道.FIFO.消息队列) 同步(互斥量.条件变量.读写锁.文件和写记录锁.信号量) 共享内存(匿名的 ...

  9. python 网络编程 TCP/IP socket UDP

    TCP/IP简介 虽然大家现在对互联网很熟悉,但是计算机网络的出现比互联网要早很多. 计算机为了联网,就必须规定通信协议,早期的计算机网络,都是由各厂商自己规定一套协议,IBM.Apple和Micro ...

随机推荐

  1. C# 使用Emit实现动态AOP框架 进阶篇之优化

    目  录 C# 使用Emit实现动态AOP框架 (一) C# 使用Emit实现动态AOP框架 (二) C# 使用Emit实现动态AOP框架 (三) C# 使用Emit实现动态AOP框架 进阶篇之异常处 ...

  2. BZOJ5017题解SNOI2017炸弹--玄学递推

    题目链接 https://www.lydsy.com/JudgeOnline/problem.php?id=5017 分析 老师讲课谈到了这道题,课上想出了个连边建图然后乱搞的操作,被老师钦定的递推方 ...

  3. js之语句(条件语句,循环语句,跳转语句)

    一.条件语句 1.if语句 条件语句是通过判断指定表达式的值来决定执行还是跳过某些语句,这些语句是代码是“决策点”有时称之为“分支”. if语句是一种基本的控制语句,它让Javascript程序可以选 ...

  4. javascript的隐式类型转换(使(a==1&&a==2&&a==3) 成立)

    一些团队规定禁用 == 运算符换用=== 严格相等.以工程标准衡量,== 带来的便利性抵不上其带来的成本,团队协作时候你看到别人代码中的 ==,有些时候需要判断清楚作者的代码意图是确实需要转型,还是无 ...

  5. ceres for Android 太慢的解决方法

    跨平台编译了ceres,结果在android平台上运行的太慢,优化一次要0.3秒左右,时不时要一两秒.这太扯了.没辙了,在google上瞎搜索,看到 Jacobian evaluation is ve ...

  6. C#中构建多线程应用程序[转]

    原文:http://blog.sina.com.cn/s/blog_4e61c4290100ndyl.html C#中构建多线程应用程序[转] (2011-01-04 21:29:29) 转载▼ 标签 ...

  7. linux基础—课堂随笔04_文件查找和压缩

    文件查找和压缩 文件查找 1.locate   这个命令是对其生成的数据库进行遍历(生成数据库的命令:updatedb),这一特性决定了用locate查找文件速度很快,但是locate命令只能对文件进 ...

  8. JMeter 控件整理

    一个线程组里多个请求的情况下,添加用户参数.如添加random函数,若不勾选“每次迭代更新一次”则每发送一个请求调用一次random函数,勾选上之后,整个线程组运行过程只调用一次random函数.

  9. ora-01847:月份中日的值必须介于 1 和当月最后一日之间

    今天解决了一个奇葩问题: ORA-01847: 月份中日的值必须介于 1 和当月最后一日之间 将数据从一个视图倒入到一个同结构的表中,但是老报错,也就那么几个字段,肉眼真看不出来什么问题,但是既然报这 ...

  10. LabVIEW中的波形图表(Chart)与波形图(Graph)

    在百度上随便找的一个简单的例子: 具体链接:https://jingyan.baidu.com/article/5552ef47deb996518ffbc983.html 波形图表最先出现数据,等待所 ...