在网络编程中主要是使用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基础——网络编程相关推荐

  1. Day31 python基础--网络编程基础-socketserver

    一,验证客户端合法性 #server端 import os import hmac import socket secret_key = b'alex_sb'def auth(conn):msg = ...

  2. Python高级网络编程系列之第一篇

    在上一篇中我们简单的说了一下Python中网络编程的基础知识(相关API就不解释了),其中还有什么细节的知识点没有进行说明,如什么是TCP/IP协议有几种状态,什么是TCP三次握手,什么是TCP四次握 ...

  3. Python之网络编程(TCP套接字与UDP套接字)

    文章目录 基于tcp的套接字 实现目标 tcp服务端源码 tcp客户端源码 tcp效果实现 基于udp的套接字 udp作用介绍 udp服务端源码 udp客户端源码 udp效果实现 用udp实现一个时间 ...

  4. python recv_python网络编程调用recv函数完整接收数据的三种方法

    最近在使用python进行网络编程开发一个通用的tcpclient测试小工具.在使用socket进行网络编程中,如何判定对端发送一条报文是否接收完成,是进行socket网络开发必须要考虑的一个问题.这 ...

  5. 用 Python 写网络编程(四)

    本文首发于TesterHome社区,作者是资深游戏测试开发工程师陈子昂.用 Python 写网络编程共四篇,今天分享的是第四篇.原文链接:https://testerhome.com/topics/2 ...

  6. Python 异步网络编程实战

    Python 异步网络编程实战 - songcser - 掘金小册 小册介绍 第一部分是对 Python 协程的讲解,从字节码开始简单讲解了 Python 虚拟机的执行过程,可以大体了解到 Pytho ...

  7. Python基础-socket编程

    一.网络编程 自从互联网诞生以来,现在基本上所有的程序都是网络程序,很少有单机版的程序了. 计算机网络就是把各个计算机连接到一起,让网络中的计算机可以互相通信.网络编程就是如何在程序中实现两台计算机的 ...

  8. Python Socket网络编程(二)局域网内和局域网与广域网的持续通信

    目录 前言 IP地址 简介 公有IP 私有IP 局域网之间网络通信 前提 功能描述 源码 运行结果 局域网与广域网网络通信 前提 源码 结语 前言 本系列博客是笔者学习Python Socket的过程 ...

  9. JAVA基础 网络编程

    JAVA基础 网络编程 网络我们每天都会用到的,在我们生活中占的地位也在不断的提高,我们下面就简单了解下网络编程的内容. 想要学习网络编程,首先就需要了解网络编程包含哪些内容. 网络编程包括 IP节点 ...

最新文章

  1. 成功解决Exception: Graph file doesn't exist, path=F:\File_Python\Python_example\Human_Posture_Detection\
  2. 微软亚洲研究院谭旭:AI音乐,技术与艺术的碰撞
  3. mysql-日志浅析_mysql日志使用浅析
  4. 点击出现黑色背景的解决:-webkit-tap-highlight-color:rgba(0,0,0,0)
  5. SAP UI5 Fiori startup service
  6. 嵌入式Linux下Qt的中文显示
  7. Celery参数详解、配置参数
  8. 基于Django实现RBAC权限管理
  9. 为什么赚不到90后00后的钱?
  10. oracle get_ddl XSL error 解决方法
  11. python读写将excel转换为xml_Python实现将Excel转换成xml的方法示例
  12. Java 汉字繁体转简体
  13. JS模拟百度文库评分
  14. 硬盘损坏的解决方法(MBR主引导记录的恢复)
  15. uos应用_UOS指标的应用详解
  16. NFM 网络介绍与源码浅析
  17. php购物商城,基于PHP的网上商城
  18. 计算机一级B考试总结500字,期中考试反思作文500字
  19. [附源码]计算机毕业设计JAVA教师教学评价系统
  20. 基于jquery结婚电子请柬特效素材

热门文章

  1. 经典干货 | 淘宝直播在双11的互动实践
  2. java如何解决写者优先问题_第二类读者写者问题(写者优先)的信号量及PV操作解决方案...
  3. 三、水文监测报文帧结构框架
  4. 微信浏览器跳转小程序php,微信浏览器里面h5跳转小程序
  5. 产品经理必读的九步法(转)
  6. 如何从u盘启动选择修复计算机,电脑设置从u盘启动蓝屏怎么修复_电脑进入u盘启动蓝屏如何解决...
  7. 大连东软信息学院计算机科学与技术分数线,大连东软信息学院
  8. 04-【kubernetes】Devops核心要点及Kubernets架构概述
  9. java的构造方法链
  10. vim之vundle