美文网首页
python网络编程/服务器编程

python网络编程/服务器编程

作者: deraiven | 来源:发表于2016-03-15 13:21 被阅读0次

    1、客户/服务器架构


    1.1 硬件客户
    如:打印机

    1.2 软件客户
    如:web服务器,数据库服务器

    2、套接字

    套接字好比连接服务器的“通讯端点”,没有套接字就无法创建连接。
    2.1套接字家族
    “家族名”: AF_UNIX,
    ”地址家族“:AF_INET

    2.2主机与端口
    合法的端口号范围为0 到65535。其中,小于1024 的端口号为系统保留端口。

    2.3面向连接和无连接
    面向连接套接字,使用的是TCP/IP传输协议
    无连接使用的是UDP/IP协议

    2.4服务器/客户端编程
    2.4.1socket模块
    TCP服务器编程
    <pre>

    #encoding=utf-8
    from socket import *
    from time import ctime
    </br>
    HOST='127.0.0.1'
    PORT=5005
    BUFSIZ=1024
    ADDR=(HOST,PORT)
    tcpServer=socket(AF_INET,SOCK_STREAM) #创建流类型的服务器套接字
    tcpServer.bind(ADDR) #把地址绑定在套接字上
    tcpServer.listen(5) #监听连接,最多5个
    </br>
    while True:
    print 'Waiting for connection...'
    tcpCliSock,addr=tcpServer.accept() #接受客户连接
    print '...connected form:',addr #客户端地址
    data=tcpCliSock.recv(BUFSIZ) #接受客户端的信息
    print data
    if not data:
    break
    tcpCliSock.send('[%s] %s' %(ctime(),data)) #反馈信息给客户端</br>

    tcpCliSock.close()tcpServer.close()

    </pre>
    客户端编程<pre>
    #encoding=utf-8
    from socket import *
    </br>
    HOST='127.0.0.1'
    PORT=5005BUFSIZ=1024
    ADDR=(HOST,PORT)
    tcpCliSock=socket(AF_INET,SOCK_STREAM) #创建流类型的客户端套接字
    tcpCliSock.connect(ADDR) #与服务器建立连接
    </br>
    while True:
    data=raw_input('>>')
    if not data:
    break
    tcpCliSock.send(data) #发送信息给服务器
    data=tcpCliSock.recv(BUFSIZ) #接受服务器信息
    if not data:
    break
    print datatcp
    </br>
    CliSock.close()
    </pre>
    2.4.2SocketServer模块
    SocketServer服务器
    <pre>

    #encoding=utf-8
    from SocketServer import TCPServer,StreamRequestHandler
    from time import ctime
    </b>
    HOST='127.0.0.1'
    PORT=21567
    ADDR=(HOST,PORT)
    </b>
    class MyRequestHandler(StreamRequestHandler):
    def handle(self): #处理客户发送的信息
    print '...connected from:',self.client_address
    self.wfile.write('[%s] %s' %(ctime(),self.rfile.readline())) #write发送信息给客户,self.rfile.readline()读取客户发送的信息
    </br>
    tcpServer=TCPServer(ADDR,MyRequestHandler)
    print 'waiting for connection...'tcpServer.serve_forever()
    </pre>

    相关文章

      网友评论

          本文标题:python网络编程/服务器编程

          本文链接:https://www.haomeiwen.com/subject/ckzflttx.html