我已经写了一个基本的基于python套接字的聊天程序(我的第二个),我想添加一些视觉效果使它更友好一些。如何添加视觉效果到蟒蛇聊天程序
我应该层中的视觉效果超过了现有的程序,或者我应该做一个新节目围绕视觉
我应该使用的视觉效果(我知道pygame的是合适的)
什么Python模块
我可以有某种形式如何写这个总体思路
这里是我现有的代码(也许代码示例):
Client:
import socket, threading
#Setup The Variables
WindowTitle = 'Chat 2.0 - Client'
s = socket.socket()
host = raw_input("Please Enter External IP adress Here: ")
print
host = socket.gethostname()
port = 8008
#Attempted To Connect
print "Conecting..."
print
while True:
try:
s.connect((host, port))
break
except:
pass
print "Connected To " + str(host) + " " + str(port)
print
#Check For Incomming Data
def check_for_data():
while True:
data = s.recv(1024)
if data:
print
print "Other: " + str(data)
print
print "You: "
else:
print "Client closed connection"
s.close()
break
#Send Data
def send_data():
while True:
user_input = raw_input("You: ")
print
s.sendall(user_input)
#Start Threads \ Main Loop
t = threading.Thread(target=send_data)
t.daemon = True
t.start() #1
check_for_data()
s.close
Server:
import socket, threading
#Setup The Variables
WindowTitle = 'Chat 2.0 - Client'
host = socket.gethostname()
port = 8008
s = socket.socket()
s.bind((host, port))
print "Awaiting Connection..."
print
s.listen(5)
c, addr = s.accept()
print "Connection From: " + str(addr)
print
def check_for_data(c):
while True:
data = c.recv(1024)
if data:
print
print "Other: " + str(data)
print
print "You: "
else:
print "Client closed connection"
c.close()
break
def send_data():
while True:
message = raw_input("You: ")
print
c.sendall(message)
#Start Threads \ Main Loop
t = threading.Thread(target=send_data)
t.daemon = True
t.start() #1
check_for_data(c)
c.close()
最好你应该将GUI与程序的内部工作分开。 您可能还想查看['tkinter'](https:// wiki。python.org/moin/TkInter)。我在[GitHub](https://github.com/chuckoy/monopoly-cash-tracker)上制作了一个专卖计算器,但我无法给你任何关于最佳实践的保证,尽管我在那时做了最好的事情。 –
不得不同意tkinter可能是更好的方式去这里。对于一个聊天程序,pygame的sprite/rects/surfaces都没什么用处。不过,tkinter的按钮和标签以及其他类似的东西都可以满足您的需求。顺便说一句,为了让你的套接字更轻松,请查看makefile方法。 –
@DavidJayBrady你可以请发表你的评论作为答案,所以我可以结束这个问题:) –