python核心第三版之网络编程

创建TCP服务器伪代码:

s = socket()                    #创建服务器套接字

s.bind()                        #套接字与地址绑定

s.listen()                      #监听连接

inf_loop:                       #服务器无限循环

cs = s.accept()             #接受客户端连接,如果没有连接,则阻塞

comm_loop:                  #通信循环

cs.recv() / cs.send()   #会话

cs.close()                  #关闭客户端套接字

s.close()                       #关闭服务器套接字

以下是代码:

#!/usr/bin/env python3
# encoding: utf-8

from socket import *
from time import ctime

HOST = ‘‘
PORT = 21567
BUFSIZE = 1024
ADDR = (HOST, PORT)

tcpSerSock= socket(AF_INET, SOCK_STREAM)
tcpSerSock.bind(ADDR)
tcpSerSock.listen(5)

while True:
    print(‘waiting for connection...‘)
    tcpCliSock, addr = tcpSerSock.accept()
    print(‘...connected from:‘, addr)

    while True:
        data = tcpSerSock.recv(BUFSIZE)
        if not data:
            break
        tcpSerSock.send(‘[%s] %s‘ % (bytes(ctime(), ‘uft-8‘), data))

    tcpSerSock.close()
tcpSerSock.close()

相应地创建TCP客户端伪代码:

cs = socket()

cs.connect()

comm_loop:                      #通信循环

cs.recv() / cs.send()   #会话

cs.close()                  #关闭客户端套接字

以下是实现代码:

#!/usr/bin/env python

# encoding: utf-8

from socket import *

HOST = ‘192.168.184.130‘

PORT = 21567

BUFSIZE = 1024

ADDR = (HOST, PORT)

tcpCliSock = socket(AF_INET, SOCK_STREAM)

tcpCliSock.connect(ADDR)

while True:

data = input(‘>‘)

if not data:

break

tcpCliSock.send(data)

data = tcpCliSock.recv(BUFSIZE)

if not data:

break

print(data)

tcpCliSock.close()

在这个最简单的服务器套接字程序基础上,可以充分地扩充。

时间: 2024-08-08 01:27:50

python核心第三版之网络编程的相关文章

python学习之【16】网络编程

主题 客户端/服务器架构 套接字:通信终点 套接字地址 面向连接与无连接套接字 Python中的网络编程 SOCKET模块 套接字对象方法 TCP/IP客户端和服务器 UDP/IP客户端和服务器 SocketServer模块 Twisted框架介绍 相关模块 1.客户端服务器架构 客户<---->INTERNET<------->服务器.客户连上一个预先已知的服务器,提出自己的请求,发送必要的数据,然后就等待服务器返回的数据. 2.套接字:通信终点 套接字是一种具有"通信

第三模块:网络编程

1.基础知识 现有的软件,绝大多数是基于C/S结构,那么就需要介绍网络编程,毕竟现在的绝大多数数据还是在网络中传输.下面先说明一些网络的基础知识,不过对于从事网络工程的来说只是很简单的基础知识, 1.1 C/S架构 C/S架构中C指的是client(客户端软件),s指的是server(服务器端软件),而本章的主要学习目的是写一个基于C/S架构的软件,客户端软件与服务器端基于网络通信.现在基本的C/S架构基本是下图这样:客户端与服务器基于网络传输互相传输数据. 1.2 OSI的七层协议 了解了C/

Python之路【第九篇】:Python基础(25)——socket网络编程

socket网络编程 socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求. socket起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”,对于文件用打开.读写.关闭模式来操作.socket就是该模式的一个实现,socket即是一种特殊的文件,一些socket函数就是对其进行的操作(读/写IO.打开.关闭) socket和file的区别: file模块是针对某个指定

Python for Infomatics 第12章 网络编程三(译)

注:文章原文为Dr. Charles Severance 的 <Python for Informatics>.文中代码用3.4版改写,并在本机测试通过. 12.5 HTML分析和网页抓取 urllib库一项最常用的功能是抓取网页.就是我们编写一个程序,将自己伪装成网页浏览器,在获取网页之后,再以查找模式检索网页中的数据. 以搜索引擎Google为例,它将查看一个网页的源码,然后抽取其中的链接,再用这些链接获取网页.抽取链接,并一直循环.使用这个技巧,Google几乎爬遍网页上的所有页面. G

python自动化运维之Socket网络编程

1.Socket      socket起源于Unix,而Unix/Linux基本哲学之一就是"一切皆文件",对于文件用[打开][读写][关闭]模式来操作.socket就是该模式的一个实现,socket即是一种特殊的文件,一些socket函数就是对其进行的操作(读/写IO.打开.关闭)基本上,Socket 是任何一种计算机网络通讯中最基础的内容.例如当你在浏览器地址栏中输入 http://www.cnblogs.com/ 时,你会打开一个套接字,然后连接到 http://www.cnb

python书籍推荐:Python Cookbook第三版中文

所属网站分类: 资源下载 > python电子书 作者:熊猫烧香 链接:http://www.pythonheidong.com/blog/article/44/ 来源:python黑洞网 内容简介 <Python Cookbook(第3版)中文版>介绍了Python应用在各个领域中的一些使用技巧和方法,其主题涵盖了数据结构和算法,字符串和文本,数字.日期和时间,迭代器和生成器,文件和I/O,数据编码与处理,函数,类与对象,元编程,模块和包,网络和Web编程,并发,实用脚本和系统管理,测

python cookbook第三版学习笔记六:迭代器与生成器

假如我们有一个列表 items=[1,2,3].我们要遍历这个列表我们会用下面的方式 For i in items:   Print i 首先介绍几个概念:容器,可迭代对象,迭代器 容器是一种存储数据的数据结构,容器将所有数据保存在内存中,典型的容器有列表,集合,字典,字符数组等.如items就是一个列表容器.   可迭代对象:这个对象是否可迭代.如items也是一个可迭代对象.简单来说如果可以用for循环的对象都称为可迭代对象.如果要判断是否是一个可迭代的对象.可以用print isinsta

python自动化开发学习-9 socket网络编程

一. 简介 python提供了两个级别访问的网络服务: 低级别的网络服务支持节本的socket,它提供了标准的BSD sockets API,可以访问底层操作系统socket接口的全部方法. 高级别的网络服务模块socketserver,它提供了服务器中心类,可以简化网络服务器的开发. socket介绍 socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求. socket起源于Unix

python cookbook第三版学习笔记七:python解析csv,json,xml文件

CSV文件读取: Csv文件格式如下:分别有2行三列. 访问代码如下: f=open(r'E:\py_prj\test.csv','rb') f_csv=csv.reader(f) for f in f_csv:     print f 在这里f是一个元组,为了访问某个字段,需要用索引来访问对应的值,如f[0]访问的是first,f[1]访问的是second,f[2]访问的是third. 用列索引的方式很难记住.一不留神就会搞错.可以考虑用对元组命名的方式 这里介绍namedtuple的方法.