关于python编程,写一个聊天室中间出现的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于python编程,写一个聊天室中间出现的问题相关的知识,希望对你有一定的参考价值。

我在用python写一个多人聊天室,出现了一下问题:
Traceback (most recent call last):
File "/Users/lanaiconan/Documents/server.py", line 77, in <module>
server_run()
File "/Users/lanaiconan/Documents/server.py", line 40, in server_run
ss=conn()
File "/Users/lanaiconan/Documents/server.py", line 19, in conn
ss.bind(addr)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py", line 228, in meth
return getattr(self._sock,name)(*args)
gaierror: [Errno 8] nodename nor servname provided, or not known

可否请大神明示如何修改。。是不是需要下载什么或是代码哪里错了。。代码如下:

import socket,select,thread;

host=socket.gethostname()
port=5963
addr=(host,port)

inpute=[]
fd_name=[]

def who_in_room(w):
name_list=[]
for k in w:
name_list.append(w[k])

return name_list
def conn () :
print 'running'
ss = socket.socket()
ss.bind(addr)
ss.listen(5)

return ss

def new_coming(ss):
client,add=ss.accept()
print'welcome %s %S'%(client,add)
wel= ''''welcome into the talking room.
please decide your name.....'''
try:
client.send(wel)
name= client.recv(1024)
inputs.append(client)
fd_name[client]=name
nameList= "Some people in talking room, these are %s" %(who_in_room(fd_name))
client.send(nameList)

except Exception,e:
print e
def server_run():
ss=conn()
inputs.append(ss)

while True:
r,w,e = select.select(inputs,[],[])
for temp in r:
if temp is ss:
new_coming(ss)
else:
disconnect = False
try:
data= temp.recv(1024)
data=fd_name[temp]+'say:'+data
except socket.error:
data=fd_name[temp]+'leave the room'
disconnect=True

if disconnect:
inputs.remove(temp)
print data
for other in inputs:
if other!=ss and other!=temp:
try:
other.send(data)
except Exception,e:
print e
del fd_name[temp]
else:
print data

for other in inputs:
if other!=ss and other!=temp:
try:
other.send(data)
except Exception,e:
print e
if __name__=='__main__':
server_run()

有点长。。谢了!如果能正常运行一定第一时间采纳

参考技术A 知道无大神,屌丝一大群

是否有活跃的 Python 聊天?

【中文标题】是否有活跃的 Python 聊天?【英文标题】:Is there an active Python-Chat? 【发布时间】:2010-02-24 12:32:39 【问题描述】:

是否有活跃的 Python-Chat?

【问题讨论】:

kame,该网站是关于编程的,而不是与编程相关的活动。如果一个问题遵循“XXX for程序员”的模式,那么这个问题肯定遵循(“Active chat for Python程序员”),那么它不符合意图和 Stack Overflow 的目的。请阅读***.com/faq 【参考方案1】:

如果您要找一个人们谈论 Python 的 irc 频道,请尝试http://www.python.org/community/irc/

【讨论】:

【参考方案2】:

Python Chat Server

Python Chat Client

【讨论】:

【参考方案3】:

我猜你正在寻找一个 IRC 频道?好吧,这与编程无关,所以您不应该在这里发布这个问题吗? 无论如何,quakenet 都有一个 python 频道

【讨论】:

为什么这个问题与编程无关? :( 如果你要的是一个与编程无关的 irc 频道,那么你的问题格式不正确,很难知道你想知道什么.. 问题不是关于“irc 频道”。问题是关于一个与编程相关的 irc 频道。 @porgarmingduod:该网站是关于编程,而不是编程相关活动。如果问题遵循“XXX for程序员”的模式,那么这个问题肯定遵循(“Active chat for Python程序员”),那么它不符合意图Stack Overflow 的用途和目的。 @voyager:如果您认为将 编程与编程相关的活动 分开是有意义的,那么请务必这样做。也许您不应该问诸如“如何在单个 SVN 服务器中安排多个项目?”之类的问题。是编程吗?不,不是。它适合这里吗?是的,确实如此,作为一项编程相关活动

以上是关于关于python编程,写一个聊天室中间出现的问题的主要内容,如果未能解决你的问题,请参考以下文章

是否有活跃的 Python 聊天?

关于swoole

一个python程序——聊天

关于Python pandas模块输出每行中间省略号问题

Python基础 - 第八天 - Socket编程进阶

python学习之路 一 编程语言介绍