简体   繁体   English

套接字编程:类型错误:需要类似字节的 object,而不是“str”

[英]Socket programming: TypeError: a bytes-like object is required, not 'str'

I have the following error for my python code TypeError: a bytes-like object is required, not 'str' I followed another post on here saying to add UTF-8 as a parameter for my connectionSocket.send but it still gives me errors我的 python 代码类型错误出现以下错误TypeError: a bytes-like object is required, not 'str'我在这里关注了另一篇文章,说要添加UTF-8作为我的connectionSocket.send的参数,但它仍然给我错误

# Import socket module

from socket import *

import socket  # Alternative (better) syntax

# Create a TCP server socket

# (AF_INET is used for IPv4 protocols)

# (SOCK_STREAM is used for TCP)

# serverSocket = socket(AF_INET, SOCK_STREAM)

# Alternative (better) syntax
serverSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# Assign a port number

serverPort = 6079

# Bind the socket to server address and server port

serverSocket.bind(("", serverPort))

# or

# serverSocket.bind((gethostname(), serverPort))

# serverSocket.bind((socket.gethostname(), serverPort)) # Alternative (better) syntax

# Listen to at most 1 connection at a time

serverSocket.listen(1)

# Server should be up and running and listening to the incoming connections

while True:

    print('Ready to serve...')

    # Set up a new connection from the client

    connectionSocket, addr = serverSocket.accept()

    # If an exception occurs during the execution of try clause

    # the rest of the clause is skipped

    # If the exception type matches the word after except

    # the except clause is executed

    try:

        # Receives the request message from the client

        message = connectionSocket.recv(1024)

        print('Message is: '), message

        # Extract the path of the requested object from the message

        # The path is the second part of HTTP header, identified by [1]

        filename = message.split()[1]

        print('File name is: '), filename

        # Because the extracted path of the HTTP request includes

        # a character '/', we read the path from the second character

        f = open(filename[1:], 'r')

        # Store the entire contenet of the requested file in a temporary buffer

        outputdata = f.read()

        # Send the HTTP response header line to the connection socket

        connectionSocket.send("HTTP/1.1 200 OK\r\n\r\n","UTF-8")

        # Send the content of the requested file to the connection socket

        for i in range(0, len(outputdata)):

            connectionSocket.send(outputdata[i])

        connectionSocket.send("\r\n")

        # Close the client connection socket

        connectionSocket.close()

    except IOError:

        # Send HTTP response message for file not found

        connectionSocket.send(bytes("HTTP/1.1 404 Not Found\r\n\r\n", "UTF-8"))
        connectionSocket.send(bytes(
            "<html><head></head><body><h1>404 Not Found</h1></body></html>\r\n", "UTF-8"))

        # Close the client connection socket

        connectionSocket.close()

serverSocket.close()

connectionSocket.send( b "\r\n") connectionSocket.send( b "\r\n")

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 TypeError:需要一个类似字节的对象,而不是“str” - TypeError: a bytes-like object is required, not 'str' TypeError:需要类似字节的 object,而不是“str”? - TypeError: a bytes-like object is required, not 'str'? TypeError:需要一个类似字节的对象,而不是&#39;str&#39; - TypeError: a bytes-like object is required, not 'str' 类型错误:需要类似字节的 object 而不是“str” - TypeError: a bytes-like object is required not 'str' 需要一个类似字节的对象,而不是&#39;str&#39;:TypeError - a bytes-like object is required, not 'str' : TypeError TypeError: bytes-like object 是必需的,而不是 'str' - TypeError: bytes-like object is required, not 'str' python 套接字编程类型错误:不需要像 object 这样的字节 str - python socket programming TypeError: bytes like object is required not str TypeError:需要一个类似字节的对象,而不是“ str”,但类型是“ bytes” - TypeError: a bytes-like object is required, not 'str' but type is 'bytes' TypeError:需要类似字节的 object,不是“str”,但类型显示字节 - TypeError: a bytes-like object is required, not 'str' but type shows bytes 使用套接字代码并将其更改为python 3.5.0并获取TypeError:需要一个类似字节的对象,而不是&#39;str&#39;错误 - Using socket code and changing it to python 3.5.0 and getting TypeError: a bytes-like object is required, not 'str' error
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM