Python核心编程(第3版)-第二章-网络编程-读书笔记

1.什么是客户端/服务器架构?

1.1服务器可以有多个吗?

客户端就是一个吗?服务器可以为一个或多个客户端(服务的用户)提供所需的“服务”。它存在的唯一目的就是等待客户端的请求,并响应它们(提供服务),然后等待更多请求。

1.2有哪些具体的例子?

2.什么是套接字?

套接字是计算机网络的数据结构。与通信端点一样。

3.服务器端和客户端代码

客户端:

from socket import *

HOST = '67.209.188.xxx'
PORT = 21567
BUFSIZE = 1024
ADDR = (HOST, PORT)

tcpCliSock = socket(AF_INET, SOCK_STREAM)#walden,第一个参数指定是地址家族中的IPV4,可以是IPV6,第二个参数是面向连接的套接字类型,即TCP套接字,对应还有UDP套接字
tcpCliSock.connect(ADDR)#walden,这个地址是由两部分组成,分别是服务器的主机名与端口名,主机名是ip

while True:
    data = raw_input('> ')
    if not data:
        break;
    tcpCliSock.send(data)
    data = tcpCliSock.recv(BUFSIZE)
    if not data:
        break;
    print data
    
tcpCliSock.close()
服务器端:

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()#walden,被动接受TCP客户端连接,一直等待直到连接到达(阻塞)
    print '...connected from::', addr #...connected from:: ('127.0.0.1', 63680) walden ip地址不变,但是后面的端口号每次重现运行后都会发生变化
    
    while True:
        data = tcpCliSock.recv(BUFSIZE)
        if not data:
            break
        tcpCliSock.send('[%s] %s' %(ctime(), data))
    
    tcpCliSock.close()
tcpSerSock.close()







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值