2014-10-06 8 views
-1

Я новичок в Python и при создании клиент-серверной программы ping-сервера UDP на Python я столкнулся с этой серьезной ошибкой. Он говорит:Невозможно преобразовать объект 'tuple' в str неявно

TpyeError: Can't convert 'tuple' object to str implicitly 

ошибка присутствует в файле UDPClient.py, который:

from socket import * 
from datetime import * 
from time import * 

pings = 10 
i =0 
server = '127.0.0.1' 
servPort = 5369 
clientSock = socket(AF_INET, SOCK_DGRAM) 
data = 'ping' 
databin = bytes(data, 'UTF-8') 
while i<pings: 
    print("Print number: ",i) 
    i += 1 
    before = datetime.now() 
    clientSock.sendto(databin, (server, servPort)) 
    clientSock.settimeout(1) 

    try: 
     clientMsgm server = cliendSock.recvfrom(1024) 
     after = datetime.now() 
     diff = before - after 
     if(i==10): 
      print("Ping", i) 

    except timeout: 
     print("Ping",i," Request timed out!!!") 


Traceback (most recent call last): 

File "D:\...\UDPClient.py", line 18, in <module> 
clientSock.sendto(databin,server, servPort) # Send what (i.e.'ping') and to whom and where 
TypeError: an integer is required (got type str) 
+1

Какая строка дает ошибку? –

+0

Вы пропустили 't', когда вы назначили 'databin'? – squiguy

+0

, пожалуйста, разместите полную трассировку, также какую версию python вы используете? –

ответ

0

Эта ошибка вызвана пытается объединить strtuple и неподдерживаемый образом

например:

Python 3.3.2+ (default, Feb 28 2014, 00:52:16) 
[GCC 4.8.1] on linux 
Type "help", "copyright", "credits" or "license" for more information. 
>>> "foo" + ("bar",) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: Can't convert 'tuple' object to str implicitly 

Я не думаю, что образец кода, который вы включили, делает это gh

+0

Что делать? причина uptil 4 pings работает нормально, но тогда это показывает мне ошибку! – user2607744

Смежные вопросы