python而真正的错误

时间:2018-03-31 20:30:56

标签: python networking

我现在正在学习python一个月,因为我想为我的GameMakerStudio 2游戏编写一个服务器,它不支持线程,我需要用另一种语言编写服务器才能使其可用。 无论如何... https://www.youtube.com/watch?v=WrtebUkUssc -tutorial url

我正在关注本教程,不幸的是我收到的错误是:

/ home / borut / PycharmProjects / Server / venv / bin / python /home/borut/PycharmProjects/Server/Server.py   文件“/home/borut/PycharmProjects/Server/Server.py”,第19行     而真:     ^ IndentationError:意外缩进

使用退出代码1完成处理

我在教程中遵循的代码是:

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 for a connection')
def threaded_client(conn):
    conn.send(str.encode('Welcome, type your info\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,))

谢谢你们的所有答案和提示!

2 个答案:

答案 0 :(得分:1)

问题是您的缩进不正确。通过缩进我的意思是

  

在逻辑开头引出空格(空格和制表符)   line用于计算行的缩进级别   turn用于确定语句分组

This link有助于您了解缩进的重要性。

要解决此问题,请使用IDE格式化代码。您可以使用此代码,我已为您修复了缩进。

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 for a connection')
def threaded_client(conn):
    conn.send(str.encode('Welcome, type your info\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,))

答案 1 :(得分:1)

缩进是Python最重要的思考,因为你通知你开始/结束一段代码的方式。

你的第一个

while True:

是前面的一个标签