2013-07-17 144 views
0

我做了一個聊天服務器的客戶端,但是當我運行它,我得到這個錯誤:套接字聊天客戶端錯誤

Traceback (most recent call last): 
    File "C:/Users/Public/Documents/Programming/Chat Client/Chat Client.py", line 21, in 
<module> 
    s = socket.socket((socket.AF_INET, socket.SOCK_STREAM)) 
AttributeError: type object 'socket' has no attribute 'socket' 

我看不出問題,所以任何人都可以幫我,這裏是我的代碼:

# Import Modules 
from tkinter import * 
from socket import * 
from threading import * 

# Window Setup 
root = Tk() 
root.title('Chat Client') 
root.state('zoomed') 

# Chat Variables 
global s 
s = socket.socket((socket.AF_INET, socket.SOCK_STREAM)) 
s.connect((TARGET, DEFAULT_PORT)) 

enter = StringVar() 
TARGET = s.gethostname() 
DEFAULT_PORT = 45000 

# Chat Message Box Setup 
chat = Text(root, height=31, state=DISABLED) 
entry = Entry(root, fg='blue', textvariable=enter, width=200) 
scroll = Scrollbar(root) 

chat['yscrollcommand'] = scroll.set 
scroll['command'] = chat.yview 

scroll.pack(side=RIGHT, fill=Y) 
chat.pack(side=TOP, fill=X) 
entry.pack(side=BOTTOM) 

# Send Command 
def send(event): 
    msg = enter.get() 
    chat['state'] = NORMAL 
    chat['fg'] = 'blue' 
    chat.insert(END, ('You: ' + msg + '\n')) 
    while 1: 
     s.sendall(msg) 
    chat['state'] = DISABLED 
    chat['fg'] = 'black' 
    enter.set('') 
    s.close() 

    entry.bind('<Return>', send) 

def recieve(): 
    s.bind((TARGET, DEFAULT_PORT)) 
    s.listen(True) 
    conn, addr = s.accept() 
    while True: 
     data = conn.recv(1024) 
     chat['state'] = NORMAL 
     chat['fg'] = 'red' 
     chat.insert(END, ('Stranger: ' + data + '\n')) 

thread.start(recieve,()) 
thread.start(send,()) 

root.mainloop() 

我不確定我的代碼有什麼問題,所以任何人都可以幫我嗎?

提前致謝!

回答

1
from socket import * 

您已導入整個socket模塊。有socket.socket。您已將socket對象直接導入當前名稱空間。

要訪問它,簡單的做

s = socket((socket.AF_INET, socket.SOCK_STREAM)) 

如果你做了

import socket 

然後,你可以通過模塊命名空間訪問socket對象。