Python基础——网络编程
在网络编程中主要是使用Socket(套接字)进行编程,套接字相当于应用程序访问下层网络的服务的接口,使用Socket可以是得不同主机之间进行通信,从而实现数据交换。
1、Socket工作方式
套接字在工作的时候连接的两端分别为客户端和服务器端,对于客户端和服务器端的工作方式是不一样的。
对于服务器端,服务器程序会在一个端口上监听服务请求,该服务器进程是一直存在的,当有客户端请求访问时,服务器进程会和客户端进程进行通信。
在Python中的套接字模块是socket模块。
2、服务器端
在上述的Socket工作原理中,服务器端程序会在一个端口上监听请求服务,当有客户端请求访问时,才和客户端进程进行通信。在Python中提供的socket模块可以较为方便的实现基本的原理。对于服务器端,当生成了套接字对象后,要实现与客户端进行通信,有如下的一些步骤:
- 调用
bind()
方法绑定一个套接字端口地址 - 使用
listen()
方法对该端口进行客户端请求的监听 - 当有客户端请求时,通过
accept()
方法生成一个连接对象,通过该连接对象发送和接受数据 - 当数据传输完毕,调用
close()
方法将生成的连接关闭
利用Python实现一个简单的服务器端程序:
#coding:UTF-8import sockets = socket.socket(socket.AF_INET, socket.SOCK_STREAM)s.bind(('127.0.0.1', 1234))s.listen(10)while True:c, addr = s.accept()print "client address: ", addrc.send("Welcome!!!")c.close()
3、客户端
与服务器端相对应,客户端请求服务器端的访问,当服务器端接受了客户端的请求后,便可以与服务器端进行通信。客户端程序在生成套接字对象后的基本过程如下:
- 调用
bind()
方法绑定自己的请求套接字地址(该步骤可选) - 调用
connect()
方法连接服务器端的进程 - 当连接成功后,可使用
send()
方法发送数据,使用recv()
函数接收数据 - 当数据传输结束后,可调用
close()
方法关闭连接
利用Python实现一个简单的客户端程序:
#coding:UTF-8import sockets = socket.socket(socket.AF_INET, socket.SOCK_STREAM)s.bind(('127.0.0.1', 2345))s.connect(('127.0.0.1', 1234))#连接的是主机的地址和端口地址info = s.recv(1024)
print infos.close()
运行结果如下:
- 服务器端
- 客户端
Python基础——网络编程相关推荐
- Day31 python基础--网络编程基础-socketserver
一,验证客户端合法性 #server端 import os import hmac import socket secret_key = b'alex_sb'def auth(conn):msg = ...
- Python高级网络编程系列之第一篇
在上一篇中我们简单的说了一下Python中网络编程的基础知识(相关API就不解释了),其中还有什么细节的知识点没有进行说明,如什么是TCP/IP协议有几种状态,什么是TCP三次握手,什么是TCP四次握 ...
- Python之网络编程(TCP套接字与UDP套接字)
文章目录 基于tcp的套接字 实现目标 tcp服务端源码 tcp客户端源码 tcp效果实现 基于udp的套接字 udp作用介绍 udp服务端源码 udp客户端源码 udp效果实现 用udp实现一个时间 ...
- python recv_python网络编程调用recv函数完整接收数据的三种方法
最近在使用python进行网络编程开发一个通用的tcpclient测试小工具.在使用socket进行网络编程中,如何判定对端发送一条报文是否接收完成,是进行socket网络开发必须要考虑的一个问题.这 ...
- 用 Python 写网络编程(四)
本文首发于TesterHome社区,作者是资深游戏测试开发工程师陈子昂.用 Python 写网络编程共四篇,今天分享的是第四篇.原文链接:https://testerhome.com/topics/2 ...
- Python 异步网络编程实战
Python 异步网络编程实战 - songcser - 掘金小册 小册介绍 第一部分是对 Python 协程的讲解,从字节码开始简单讲解了 Python 虚拟机的执行过程,可以大体了解到 Pytho ...
- Python基础-socket编程
一.网络编程 自从互联网诞生以来,现在基本上所有的程序都是网络程序,很少有单机版的程序了. 计算机网络就是把各个计算机连接到一起,让网络中的计算机可以互相通信.网络编程就是如何在程序中实现两台计算机的 ...
- Python Socket网络编程(二)局域网内和局域网与广域网的持续通信
目录 前言 IP地址 简介 公有IP 私有IP 局域网之间网络通信 前提 功能描述 源码 运行结果 局域网与广域网网络通信 前提 源码 结语 前言 本系列博客是笔者学习Python Socket的过程 ...
- JAVA基础 网络编程
JAVA基础 网络编程 网络我们每天都会用到的,在我们生活中占的地位也在不断的提高,我们下面就简单了解下网络编程的内容. 想要学习网络编程,首先就需要了解网络编程包含哪些内容. 网络编程包括 IP节点 ...
最新文章
- 成功解决Exception: Graph file doesn't exist, path=F:\File_Python\Python_example\Human_Posture_Detection\
- 微软亚洲研究院谭旭:AI音乐,技术与艺术的碰撞
- mysql-日志浅析_mysql日志使用浅析
- 点击出现黑色背景的解决:-webkit-tap-highlight-color:rgba(0,0,0,0)
- SAP UI5 Fiori startup service
- 嵌入式Linux下Qt的中文显示
- Celery参数详解、配置参数
- 基于Django实现RBAC权限管理
- 为什么赚不到90后00后的钱?
- oracle get_ddl XSL error 解决方法
- python读写将excel转换为xml_Python实现将Excel转换成xml的方法示例
- Java 汉字繁体转简体
- JS模拟百度文库评分
- 硬盘损坏的解决方法(MBR主引导记录的恢复)
- uos应用_UOS指标的应用详解
- NFM 网络介绍与源码浅析
- php购物商城,基于PHP的网上商城
- 计算机一级B考试总结500字,期中考试反思作文500字
- [附源码]计算机毕业设计JAVA教师教学评价系统
- 基于jquery结婚电子请柬特效素材
热门文章
- 经典干货 | 淘宝直播在双11的互动实践
- java如何解决写者优先问题_第二类读者写者问题(写者优先)的信号量及PV操作解决方案...
- 三、水文监测报文帧结构框架
- 微信浏览器跳转小程序php,微信浏览器里面h5跳转小程序
- 产品经理必读的九步法(转)
- 如何从u盘启动选择修复计算机,电脑设置从u盘启动蓝屏怎么修复_电脑进入u盘启动蓝屏如何解决...
- 大连东软信息学院计算机科学与技术分数线,大连东软信息学院
- 04-【kubernetes】Devops核心要点及Kubernets架构概述
- java的构造方法链
- vim之vundle