python核心第三版之网络编程

建立TCP服务器伪代码:python

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

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

    s.listen()                      #监听链接
tcp

    inf_loop:                       #服务器无限循环
ide

        cs = s.accept()             #接受客户端链接,若是没有链接,则阻塞
oop

        comm_loop:                  #通讯循环
spa

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

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

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

如下是代码:

#!/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()

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

相关文章
相关标签/搜索