This code won't run because of indents or something.
Help!


Code:

from System.Net.Sockets import *                                                                                                 
from System.Text import *                                                                                                       
                                                                                                                                 
class Module1(object):                                                                                                           
         def __init__(self):                                                                                                     
                 self._clientsList = Hashtable()                                                                                                                                                                                                 
         def Main(self):                                                                                                         
                 serverSocket = TcpListener(8888)                                                                                 
                 serverSocket.Start()                                                                                             
                 self.msg("Chat Server Started ....")                                                                             
                 counter = 0                                                                                                     
                 while (True):                                                                                                   
                         counter += 1                                                                                             
                         clientSocket = serverSocket.AcceptTcpClient()                                                           
                         bytesFrom = Array.CreateInstance(Byte, 10024)                                                           
                         networkStream = clientSocket.GetStream()                                                                 
                         networkStream.Read(bytesFrom, 0, clientSocket.ReceiveBufferSize)                                         
                         dataFromClient = System.Text.Encoding.ASCII.GetString(bytesFrom)                                         
                         dataFromClient = dataFromClient.Substring(0, dataFromClient.IndexOf("$"))                               
                         self.clientsList(dataFromClient) = clientSocket                                                         
                         self.broadcast(dataFromClient + " Joined ", dataFromClient, False)                                       
                         self.msg(dataFromClient + " Joined chat room ")                                                         
                         client = handleClinet()                                                                                 
                         client.startClient(clientSocket, dataFromClient, self._clientsList)                                     
                 clientSocket.Close()
                 serverSocket.Stop()                                                                                             
                 self.msg("exit")                                                                                                 
                 Console.ReadLine()                                                                                                                                                                                                             
         def msg(self, mesg):                                                                                                     
                 mesg.Trim()                                                                                                     
                 Console.WriteLine(" >> " + mesg)                                                                                                                                                                                               
         def broadcast(self, msg, uName, flag):                                                                                   
                 enumerator = clientsList.GetEnumerator()                                                                         
                 while enumerator.MoveNext():                                                                                     
                         Item = enumerator.Current                                                                               
                         broadcastSocket = Item.Value                                                                             
                         broadcastStream = broadcastSocket.GetStream()                                                           
                         if flag == True:                                                                                         
                                 broadcastBytes = Encoding.ASCII.GetBytes(uName + " says : " + msg)                               
                         else:                                                                                                   
                                 broadcastBytes = Encoding.ASCII.GetBytes(msg)                                                   
                         broadcastStream.Write(broadcastBytes, 0, broadcastBytes.Length)                                         
                         broadcastStream.Flush()                                                                                                                                                                                         
class handleClinet(object):                                                                                             
                 def __init__(self):                                                                                                                                                                                                       
                    def startClient(self, inClientSocket, clineNo, cList):                                                           
                            self._clientSocket = inClientSocket                                                                     
                            self._clNo = clineNo                                                                                     
                            self._clientsList = cList                                                                               
                            ctThread.Start()                                                                                                                                                                                               
                 def doChat(self): #Dim infiniteCounter As Integer                                                               
                         bytesFrom = Array.CreateInstance(Byte, 10024)                                                           
                         requestCount = 0
                         while (True):                                                                                           
                                 try:                                                                                             
                                         requestCount = requestCount + 1                                                         
                                         networkStream = self._clientSocket.GetStream()                                           
                                         networkStream.Read(bytesFrom, 0, self._clientSocket.ReceiveBufferSize)                   
                                         dataFromClient = System.Text.Encoding.ASCII.GetString(bytesFrom)                         
                                         dataFromClient = dataFromClient.Substring(0, dataFromClient.IndexOf("$"))               
                                         self.msg("From client - " + self._clNo + " : " + dataFromClient)                         
                                         rCount = Convert.ToString(requestCount)                                                 
                                         self.broadcast(dataFromClient, self._clNo, True)                                         
                                  except Exception, ex:                                                                           
                                           self.MsgBox(ex.ToString)                                                                 
                               finally:
A nice thing about Python is it tells you exactly what is wrong. What error message do you receive?
File "irc.py", line 64
except Exception, ex:
^
IndentationError: unindent does not match any outer indentation level
pcb_master wrote:
File "irc.py", line 64
except Exception, ex:
^
IndentationError: unindent does not match any outer indentation level
The try and its matching except need to be at the same indentation level. The space-based tabbing on that file is killing me; you should replace it with zero tabs for the first level, one tab for the second level, two tabs for the third, etc. That would avoid this issue. You have except...: pushed out by one more space than try:.
Got it. Thanks. Copying code from lynx isn't the best Razz
Edit: Now I get a new error


Code:
 
File "irc.py", line 66
    finally:
          ^
SyntaxError: invalid syntax
pcb_master wrote:
Got it. Thanks. Copying code from lynx isn't the best Razz
Yeah, I'll say. If you're stuck on the command line, use wget to grab the raw file, if possible.

Edit: You have no code under the finally. If you don't have any code to be run in the finally part of a try/catch/finally block in Python, just leave out the finally. Alternatively, you can use the keyword "pass" wherever you need a command but have no command you want to run. It's a no-op.
I keep getting erros. I think I'll just give up on this code. Feel free to delete this thread.
pcb_master wrote:
I keep getting erros. I think I'll just give up on this code. Feel free to delete this thread.
Don't have that short of an attention span! Persevere, learn from errors, go through the sweat and tears of figuring out what's wrong. Razz You'll never get too far in programming if you give up whenever something doesn't work for five minutes. I spent six years in between writing the first version of the CALCnet interrupt and getting it to work.
Haha. It's not my own code. I think i'll just go back to trying to get pIRCd to work...
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 1
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement