网络编程(定义)
网络编程的本质就是两个设备之间的数据交换,当然,在计算机网络中,设备主要指计算机,数据传递本身
没有多大难度,不就是把一个设备中的数据发送给一个设备,然后接收另一个设备的反馈的数据。
网络编程基本上都是基于请求/响应方式的,也就是一个设备发送请求数据给另外一个,然后接收另一个设备的反馈
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#中异常捕获,回滚

    语法: try { 有可能出现错误的代码写在这里 } catch { 出错后的处理 } 如果try中的代码没有出错,则程序正常运行try中的内容后,不会执行catch中的内容, 如果try中的代码一但 ...

  2. Sublime Text 3配置浏览默认路径为localhost

    1.在 Sublime Text 3 中,安装 SideBarEnhancements 侧边栏增强插件.(注意:安装插件之前需要安装包管理工具,参考这里) 2.SideBarEnhancements ...

  3. vue-过滤器-时间戳转换

    main.js // 将时间戳转日期格式的过滤器 Vue.filter('dateFormat', (dataStr) => { var time = new Date(dataStr); fu ...

  4. js 使用sessionStorage总结与实例

    作用:它只是可以将一部分数据在当前会话中保存下来,刷新页面数据依旧存在.但当页面关闭后,sessionStorage 中的数据就会被清空 sessionStorage的方法setItem存储value ...

  5. Json-server在Vue 2.0中使用--build文件中没有dev-server文件

    跟大佬的视频使用json-server模拟后台数据调用,发现build文件中并没有dev-server.js. 新版的vue-cli取消了dev-server.js和dev-client.js   改 ...

  6. EF 将MSSQL 更换成 POSTRESQL

    前提概要:项目里已存在MSSQL 的 DB FIRST 的EDMX, 想将项目的数据库转换成 POSTGRESQL. 解决方法: 1,新建项目, 连接MSSQL 建立模型,用来源于数据库 CODE F ...

  7. java(堆、栈、常量池)

    参考链接: https://www.cnblogs.com/wanson/articles/10819189.html

  8. 记录-Intellij Idea下以Tomcat运行Web项目时的位置问题

    今天本来准备把原来的一个Web项目导入到Idea下,之前这个项目是用eclipse写的,容器用的tomcat,首先导入前我把一些没用的配置文件都给删了,像什么.eclipse..setting什么的, ...

  9. 【转】bitbake 笔记

    原文 http://blog.csdn.net/xiaofeng_yan/article/details/6757725 1 当你已经编完一个系统比如sato映像,在编一个meta-toolchain ...

  10. Linux工具之ss

    1.SS命令 (Socket   Statistics),获取socket统计信息,显示和netstat类似的内容.显示更详细的TCP连接信息.   命令功能: ss(Socket Statistic ...