ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

网络编程

2021-06-16 09:33:46  阅读:145  来源: 互联网

标签:socket ip 编程 网络 阻塞 recv 服务端 客户端



1网络基础
1.1地址
mac地址
ip地址,4个点分十进制表示
子网掩码,将挡住的ip位数作为网段,未挡住的部分作为可变
网关,路由器中连接交换机的口

DHCP,自动为局域网电脑分配ip
路由器
交换机
广播/单播
arp协议
局域网/广域网
DNS

1.2端口,将同一个电脑上的不同程序进行隔离(ip找电脑,端口找电脑上的程序)
mysql在硬盘上进行文件操作 3306
redis 在内存上进行数据操作 6379

2osi7层模型
应用层,使用软件
表示,看到数据,如图片、视频
会话,保持登录或链接状态
传输,tcp/udp
网络,ip寻址
数据链路,mac
物理,将数据转换成电信号

3tcp三次握手/四次挥手
socket客户端向服务端发起连接请求:3次握手
客户端跟服务端断开连接:4次挥手

4BS和CS架构
a软件:
客户端:CS架构--->client ----server
浏览器:BS架构--->browser--server

b如何实现相互通信
c基于socket模块实现网络通信

为什么网络通信发送的都是字节?而不是字符串?
py3,send/recv 都是字节
py2,send/recv 都是字符串

5socket模块
服务端:收发数据 >accept/recv
客户端:收发数据 >connect/recv

服务端:
监听ip和端口
等待客户端连接(阻塞)
收(阻塞)

accept,阻塞,等待客户端来连接
recv 阻塞,等待客户端发来数据

import socket
sock=socket.socket()
sock.bind(('127.0.0.1',8899)
sock.listen(5)

conn,addr=sock.accept()
data=conn.recv(1024)

客户端:
连接服务端ip和端口(阻塞)
收(阻塞)

connect 阻塞,一直在连接,直到连接成功才往下运行其他代码
recv 阻塞,等待服务端发来数据


6黏包

7socketserver模块
多线程/多进程 + socket
面向对象多继承


程序结构
bin
config
core
db
log
readme

标签:socket,ip,编程,网络,阻塞,recv,服务端,客户端
来源: https://www.cnblogs.com/secao/p/14888066.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有