网络编程(定义)
网络编程的本质就是两个设备之间的数据交换,当然,在计算机网络中,设备主要指计算机,数据传递本身
没有多大难度,不就是把一个设备中的数据发送给一个设备,然后接收另一个设备的反馈的数据。
网络编程基本上都是基于请求/响应方式的,也就是一个设备发送请求数据给另外一个,然后接收另一个设备的反馈
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. 如何用Mvc实现一个列表页面-异步加载

    在接触Mvc后,开始有点觉得很累,什么都要自己做,完全没有WebForm的易用性: 大概用了一个月左右的时候,越用用顺手,就习惯了MVC的这种开发方式,灵活,简洁: 当初学习MVC,网上看资料,都是讲 ...

  2. WebClient小结

    webclient功能有限,特别是不能使用身份验证证书,这样,上传数据时候问题出现,现在许多站点都不会接受没有身份验证的上传文件.尽管可以给请求添加标题信息并检查相应中的标题信息,但这仅限于一般意义的 ...

  3. Semaphore拿到执行权的线程之间是否互斥

    java线程之间的控制,使用Semaphore 实现 互斥 下面我们通过Semaphore来实现一个比较好的互斥操作: package com.zhy.concurrency.semaphore; i ...

  4. vue事件处理机制

    <button @click="handleAdd1()">add1</button> <button @click="handleAdd2 ...

  5. 7 java 笔记

    1 方法是类或者对象行为特征的抽象,方法是类或对象最重要的组成部分 2 java里面方法的参数传递方式只有一种:值传递 值传递:就是将实际参数值的复制品传入方法内,而参数本身不会受到任何影响.(这是j ...

  6. js小功能1:全选全不选

    <form> 请选择你爱好:<br> <input type="checkbox" name="hobby" id="h ...

  7. 用NetHttpClient执行Post操作遇到的问题

    最近在做接口的调试,用NetHttpClient来进行相关操作.部分数据是用get方法来操作的,没有问题,但有个数据是用Post来操作的,始终报错,用了抓包分析工具发现没有发送数据出去.但找不出代码的 ...

  8. 关于api接口以及页面数据通信域名,缓存cdn设置优化

    以B站为例: 主域名:www.bilibili.com 账户登录注册相关域名,包括app登录:passport.bilibili.com 静态资源css,js,img等相关域名:static.bili ...

  9. linux工具之lsof

      1.lsof  ( list    open   files)   lsof(list open files) 是一个列出当前系统打开文件的工具.在linux环境下,任何事物都以文件的形式存在,通 ...

  10. Linux 命令配置IP

    配置静态IP:ip addr add 192.168.18.18/24 dev eth0 启动网卡:ifup eth0/ifup ifcfg-eth0 添加默认网关路由:ip route add de ...