首页 > 编程语言 > 详细

Python简单全双工聊天器

时间:2015-06-11 16:40:56      阅读:325      评论:0      收藏:0      [点我收藏+]

服务器:

 1 #!/usr/bin/python
 2 #enconding:utf-8
 3 import sys
 4 import socket
 5 import select
 6 import time
 7 
 8 HOST=‘‘
 9 PORT=21234
10 ADDR=(HOST,PORT)
11 BUFSIZ=8096
12 
13 SerSock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
14 SerSock.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
15 #SerSock.setblocking(False)
16 SerSock.bind(ADDR)
17 SerSock.listen(10)
18 
19 inputs=[SerSock,sys.stdin]
20 outputs=[]
21 timeout=45
22 
23 
24 while True:
25     tcpCliSock,addr=SerSock.accept()
26     inputs.append(tcpCliSock) 
27 
28     while True:
29         readyInput,readyOutput,readyException=select.select(inputs,[],[])
30         for indata in readyInput:
31             if indata is tcpCliSock:
32                 data=tcpCliSock.recv(BUFSIZ)
33                 if not data:
34                     break
35                 print "%s from %s"%(data,addr)
36             else:
37                 data=raw_input()
38                 if not data:
39                     break
40                 tcpCliSock.send([%s] %s%(time.ctime(),data))
41 
42 tcpCliSock.close()

客户端:

 1 #!/usr/bin/python
 2 import sys
 3 import socket
 4 import select
 5 
 6 HOST=localhost
 7 PORT=21234
 8 ADDR=(HOST,PORT)
 9 BUFSIZ=8096
10 
11 CliSock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
12 CliSock.connect(ADDR)
13 
14 inputs=[CliSock,sys.stdin]
15 outputs=[]
16 
17 while inputs:
18     readable,writable,exceptional=select.select(inputs,outputs,inputs)
19     for s in readable:
20         if s is CliSock:
21             data=s.recv(BUFSIZ)
22             if data:
23                 print "%s from server"%data
24             else:
25                 continue
26         else:
27             data=raw_input()
28             if not data:
29                 break
30             CliSock.send(data)
31 CliSock.close()

 

Python简单全双工聊天器

原文:http://www.cnblogs.com/tmyyss/p/4569017.html

(1)
(1)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!