2011-04-20 162 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