Python 核心编程 书后答案
半双工聊天程序 16-7题
#!/usr/bin/env python
#chat server 半双工聊天程序,服务端
from socket import *
########################################################################
class chatS:
"""www.d-up.org python爱好者"""
#----------------------------------------------------------------------
def __init__(self,port):
"""Constructor"""
self.serSock = socket(AF_INET,SOCK_STREAM)
self.serSock.bind(('',port))
self.serSock.listen(1)
print 'chat server start!!'
def run(self):
while 1:
self.cliSock,(addr,port1) = self.serSock.accept()
print '%s %s connected'% (addr,port1)
print '-----------------------------------'
while 1:
ss = self.cliSock.recv(1024)
if not ss:
print '%s %s off line'% (addr,port1)
break
print '%s %s say: %s' % (addr,port1,ss)
ss= raw_input('>')
self.cliSock.send(ss)
print '-----------------------------------'
self.cliSock.close()
chatSer = chatS(3557)
chatSer.run()
下面是客户端:
#!/usr/bin/python
from socket import *
import sys
if __name__=="__main__":
port = int(sys.argv[1])
host= '192.168.1.117'
ADDR=(host,port)
cliSock= socket(AF_INET,SOCK_STREAM)
cliSock.connect(ADDR)
print 'Connect ready!\n--------------------'
while 1:
ss = raw_input('>')
if not ss:
break
cliSock.send(ss)
ss=cliSock.recv(1024)
if(ss == 'bye'):
print 'server say bye'
break
print "%s say: %s" %(host,ss)