<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def operate_on_bulb(self, method, params=None):
 """ Build socket and send command to the bulb through it :param method: method you want to use :param params: parameters needed for this method (can be a string if ony one parameter is needed) :type method: str :type params: list of str """

        # Get the message
        self.command = YeelightCommand(self.next_cmd_id(), method, params)
        # Send with socket
        tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        tcp_socket.connect((self.ip, int(self.port)))
        tcp_socket.send(self.command.get_message().encode())
        data = tcp_socket.recv(4096)
        tcp_socket.close()
        # Process the response
        self.response = YeelightResponse(data.decode(), self.command)