python核心第三版之网络编程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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()

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

        

以上是关于python核心第三版之网络编程的主要内容,如果未能解决你的问题,请参考以下文章

分享《Python核心编程(第三版)》+PDF+源码+Wesley Chun+孙波翔 李斌 李晗

Python学习资料

Python学习的必备书籍

Effective Java 第三版——65. 接口优于反射

Python网络编程

笨办法学 Python(第三版)习题 18: 命名变量代码函数