2011-04-20 164 views
-2
  arg = data.split() 

     args = '' 
     for index,item in enumerate(arg) : 
       if index > 3: 
        if args == '': 
         args = item 
        else : 
          args += ' ' + item 


    if data.find('!check') != -1: 
    nick = data.split('!')[ 0 ].replace(':','') 
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
    ip = args[1] 
    port = int(args[2]) 
    try: 
     s.connect((ip, port)) 
     s.send('PRIVMSG ' + chan + " :" ' its alive' + '\r\n') 
    except socket.error: 
     s.send('PRIVMSG ' + chan + " :" ' its dead' + '\r\n') 

我試圖連接到代理,看看它活着還是死了,但我不斷收到這個錯誤..連接到插座

port = int(args[2]) 
ValueError: invalid literal for int() with base 10: '.' 
+1

我們應該怎麼知道args [2]是什麼?調試器是你的朋友... – 2011-04-20 18:18:52

回答

1

你給什麼參數你的代碼? ValueError告訴你,你正試圖將一個句點(.)轉換爲一個整數,這是沒有意義的。什麼是args

+0

我更新了我的帖子 – SourD 2011-04-20 18:22:10

+0

你的代碼是毫無意義的,並沒有告訴我們有關'args'的任何信息。閱讀我上面的評論並調試你的代碼。您的信息不完整且不合時宜。 – 2011-04-20 18:24:28

+0

是的,不知道'數據'是什麼樣的,所以其餘的都沒有任何意義。另外,你在後面的代碼中將'args'視爲一個列表,但是'for'循環會構建一個字符串。 – cbrauchli 2011-04-20 18:32:10