python實(shí)現(xiàn)TCP服務(wù)器端與客戶端的方法詳解

字號:


    本文實(shí)例講述了python實(shí)現(xiàn)TCP服務(wù)器端與客戶端的方法。分享給大家供大家參考。具體如下:
    TCP服務(wù)器程序(tsTserv.py):
    from socket import *
    from time import ctime
    HOST = ''
    PORT = 21567
    BUFSIZ = 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 = tcpCliSock.recv(BUFSIZ)
    if not data:
    break
    tcpCliSock.send('[%s] %s' %(ctime(), data))
    tcpCliSock.close()
    tcpSerSock.close()
    TCP客戶端程序(tsTclnt.py):
    from socket import *
    HOST = 'localhost'
    PORT = 21567
    BUFSIZ = 1024
    ADDR = (HOST, PORT)
    tcpCliSock = socket(AF_INET, SOCK_STREAM)
    tcpCliSock.connect(ADDR)
    while True:
    data = raw_input('> ')
    if not data:
    break
    tcpCliSock.send(data)
    data1 = tcpCliSock.recv(BUFSIZ)
    if not data1:
    break
    print data1
    tcpCliSock.close()
    運(yùn)行說明:先運(yùn)行服務(wù)器程序,作用類似于打開服務(wù)器保持等待客戶請求,再運(yùn)行客戶端程序。
    運(yùn)行界面如下:
    服務(wù)器端:
    D:codeex>python tsTserv.py
    waiting for connection...
    ...connected from: ('127.0.0.1', 2883)
    waiting for connection...
    ...connected from: ('127.0.0.1', 2885)
    waiting for connection...
    ...connected from: ('127.0.0.1', 2889)
    waiting for connection...
    ...connected from: ('127.0.0.1', 2891)
    waiting for connection...
    ...connected from: ('127.0.0.1', 2892)
    waiting for connection...
    ...connected from: ('127.0.0.1', 2893)
    waiting for connection...
    客戶端:
    D:codeex>python tsTclnt.py
    > 1
    [Thu Feb 02 15:52:21 2012] 1
    > 2
    [Thu Feb 02 15:52:22 2012] 2
    > 3
    [Thu Feb 02 15:52:22 2012] 3
    > 5
    [Thu Feb 02 15:52:23 2012] 5
    > 6
    [Thu Feb 02 15:52:24 2012] 6
    >
    D:codeex>