2017-09-19 9 views
0

これはPythonで作成したソケットサーバですが、実行するとthreaded_clientのwhileループと警告ボックスが表示されます。それは '無効な構文'と言います。誰が何が起こっているか教えてもらえますか?また、私が何かをコメントアウトすると、エラーはちょうど次の行に移動します。ソケットサーバ//動作していません

import socket 
    import sys 
    from _thread import * 

    host = '' 
    port = 5555 
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 

    try: 
     s.bind((host, port)) 
    except socket.error as e: 
     print(str(e)) 

    s.listen(5) 
    print('Waiting...') 
    def threaded_client(conn): 
     conn.send(str.encode('TYPE HERE\n') 

     while True: 
      data = conn.recv(2048) 
      reply = 'Server output: '+ data.decode('utf-8') 
      if not data: 
       break 
      conn.sendall(str.encode(reply)) 
     conn.close() 

    while True: 

     conn, addr = s.accept() 
     print('Connected to: '+addr[0]+':'+str(addr[1])) 

     start_new_thread(threaded_client,(conn,) 
+0

:ここでは、コードですconn.send(str.encode( 'TYPE HERE \ n') 'の中の1つ。 – Fejs

+0

あまりにもありがとう – HELP

答えて

0

あなたが欠落していたカッコあなたは(threaded_client、(CONN) `とstart_new_thread`中に少なくとも2つの括弧を、1欠けている

from thread import * 
 
import socket 
 
import sys 
 

 
host = '' 
 
port = 5555 
 
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
 

 
try: 
 
    s.bind((host, port)) 
 
except socket.error as e: 
 
    print(str(e)) 
 

 
s.listen(5) 
 
print('Waiting...') 
 

 
def threadedClient(conn): 
 
    conn.send(str.encode("Type Here\n")) 
 
    while True: 
 
     data = conn.recv(2048) 
 
     reply = 'Server output: '+ data.decode('utf-8') 
 
     if not data: 
 
     break 
 
     conn.sendall(str.encode(reply)) 
 
    conn.close() 
 

 
while True: 
 

 
    conn, addr = s.accept() 
 
    print('Connected to: '+addr[0]+':'+str(addr[1])) 
 

 
    start_new_thread(threaded_client,(conn,))

関連する問題