本文不涉及线程以及相关的死锁、互斥、共源等问题的解决
首先先搞清楚IP、端口号、TCP的概念:
IP地址就是标识网络中设备的一个地址,IP 地址分为两类:IPv4 和 IPv6
查看IP地址的方法:Linux和mac使用ifconfig这个命令,Windows使用ipconfig这个命令
判断本地网络设备是否损坏:输入如下指令,出现如下界面证明没有问题

端口(Port)大致有两种意思:一是物理意义上的端口,如:ADSL Modem、集线器、交换机、路由器用于连接其他网络设备的接口;二是逻辑意义上的端口,一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。
注意:软件层面的端口不得使用0到1024、3306、8080、13306
TCP是传输控制协议,它是一种面向连接的、可靠的、基于字节流的传输层通信协议
记忆的方法:
假设快递员送快递。IP地址相当于小区位置,端口号相当于门牌号,TCP相当于快递的箱子,socket相当于快递本身。
服务器"七步诗":(用给妹子电话记忆)
1 创建服务端socket 对象(买手机)
2 绑定ip和端口(注册手机号)
3 监听(这一步没想出来)
4 等待客户端的连接 accept()(拨打电话中)
5 接受数据(妹子说:喂)
6 回送响应(你说:是我)
7 释放资源(挂了电话)
简易服务器实现代码:

# 客户端
import socketclass WebTest(object):def __init__(self):"""服务器准备工作"""# 创建socket对象# socket.AF_INET IPV4 socket.SOCK_STREAM TCP协议self.tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 绑定ip和端口号self.tcp_socket.bind(("127.0.0.1", 8888))# 监听请求self.tcp_socket.listen(127)def connect_serve(self, ip_port, socket_name):recieve_data = socket_name.recv(1024)recieve_data = recieve_data.decode("utf8")print(f"服务端接受客户端{ip_port}数据: ", recieve_data)content = "你还可以继续发送数据".encode(encoding="gbk")socket_name.send(content)def start(self):while True:socket_name, ip_port = self.tcp_socket.accept()self.connect_serve(ip_port, socket_name)def main():web_test = WebTest()web_test.start()return 0if __name__ == '__main__':main()

python网络编程(基础含实现简易服务器代码)相关推荐

  1. python网络编程证书_《Python网络编程基础》笔记

    python网络编程基础 ================== Author: lujun9972 Date: 2013-03-08 22:29:20 CST Table of Contents == ...

  2. python网络编程基础百度云_PYTHON网络编程基础 PDF 下载

    相关截图: 资料简介: <Python网络编程基础>全面介绍了使用Python语言进行网络编程的基础知识,主要内容包括网络基础知识.高级网络操作.Web Services.解析HTML和X ...

  3. Python网络编程基础之ip地址,端口号,TCP,socket

    Python网络编程基础 IP地址 ip地址表现形式 查看ip地址 Linux Windows 检查网络是否正常 端口与端口号 端口号分类 知名端口号 动态端口号 TCP协议 概念 TCP通讯步骤 特 ...

  4. python网络编程基础(线程与进程、并行与并发、同步与异步、阻塞与非阻塞、CPU密集型与IO密集型)...

    python网络编程基础(线程与进程.并行与并发.同步与异步.阻塞与非阻塞.CPU密集型与IO密集型) 目录 线程与进程并行与并发同步与异步阻塞与非阻塞CPU密集型与IO密集型 线程与进程 进程 前言 ...

  5. 《python网络编程基础》PDF 下载

    <python网络编程基础> > 方式一: 链接:百度网盘下载地址 [ https://pan.baidu.com/s/1BiDw-gVKGrLbgUnqHUt1qQ ] 提取码:4 ...

  6. [Python]网络编程基础

    客户端/服务器网络编程 在服务器响应客户端请求之前,必须进行一些初步的设置流程来为之后的工作做准备.首先会创建一个通信端点,它能够使服务器监听请求.一旦一个通信端点已经建立,监听服务器就可以进入无限循 ...

  7. python网络编程基础知识_python网络编程基础

    一.客户端/服务器架构 网络中到处都应有了C/S架构,我们学习socket就是为了完成C/S架构的开发. 二.scoket与网络协议 如果想要实现网络通信我们需要对tcpip,http等很多网络知识有 ...

  8. 【python网络编程】创建TCP/UDP服务器进行客户端/服务器间通信

    客户端/服务器网络编程介绍 套接字:通信端点 实例:客户端发送数据,接收服务器返回的时间戳 用Python 编写FTP 客户端程序 客户端/服务器网络编程介绍 软件服务器也运行在一块硬件之上,但是没有 ...

  9. linux 网络编程 ping,Linux 网络编程基础(4) -- Ping 的C代码实现

    1.背景 在进行网络编程的时候,通常使用的协议有TCP协议,UDP协议.这些协议在简历套接字之初需要制定套接字的类型,比如TCP应当设置为 SOCK_STREAM, UDP对应的套接字应当设置为SOC ...

最新文章

  1. 重磅:2019年全国普通高校学科竞赛排行榜出炉!
  2. 关于AxWebBrowser关闭网页时的关闭提示
  3. 云计算技术都要学什么?教你分清公有云、私有云和混合云
  4. vs 创建控制器 一直收集信息_日产Pro-Pilot的ADAS控制器拆解
  5. [原]Jenkins(十二)---jenkins管理员用户无法登陆解决办法Access Denied
  6. 如何读出烧录程序.bin的数据_如何改变程序搜索数据的方式?使用Redis进行搜索...
  7. Linux下使用fdisk扩大分区容量
  8. IIS安装与部署,站点的部署与配置
  9. DiskGenius无损调整分区大小
  10. 设计一个家庭记账管理系统(Java)
  11. pdf加水印的方法,pdf如何加水印?
  12. - 麦田守望者 -读后感
  13. 蓝桥杯 算法训练 合集1 C++
  14. JavaScript判断一个数字是否为素数
  15. Debian侵犯Rust商标,妥协改名还是会得到豁免?
  16. 【IoT】产品设计:称重传感器选型指南
  17. (翻译)承诺与一致原理(Commitment consistency)
  18. linux安装深度播放器,分享|Ubuntu 14.04 用户如何安装深度音乐播放器和百度音乐插件...
  19. HTML 网页表白,520
  20. 爬取天猫国际、京东全球购、淘宝全球购的商品数据

热门文章

  1. Opencv 笔记5 边缘处理-canny、sobel、Laplacian、Prewitt
  2. SQL联合查询 join
  3. 漂亮的checkbox样式 (多选框)
  4. 论文阅读——Automatic Testing and Improvement of Machine Translation
  5. 如何在桥接模式下使用Eero保持路由器的高级功能
  6. 什么是高耦合低内聚?
  7. 用html做完整网页效果
  8. linux服务器校对和手动修改时间
  9. ev3和python哪个好_python+lego ev3的心得总结 随时更新
  10. dubbo的可扩展机制SPI源码解析(二)